【已解决】求助:去文件名空格.bat,命令语法不正确。
本帖最后由 yyz2191958 于 2023-9-17 09:18 编辑完美解决了:
::【文件名去空格(本目录全部)】版本1:
@echo off
cls
echo.
echo.
echo 【文件名去空格(本目录全部)】?
pause>nul 2>nul
cls
set "str= "
for /f "delims=" %%i in ('dir /b *.*') do (
set "var=%%i" & Setlocal Enabledelayedexpansion & ren "!var!" "!var:%str%=!" & endlocal)
exit
版本2
@echo off
::【文件名去空格】【结尾不能有:exit 】
echo.
echo.
echo 【文件名去空格(本目录全部)】?
pause>nul 2>nul
for %%f in (*) do call :r %%f
:r
set f=%* & ren "%f%" %f: =%
********************************************
原来的问题
::【去文件名空格】
@echo off
Setlocal Enabledelayedexpansion & set "str= "
for /f "delims=" %%i in ('dir /b *.*') do (set "var=%%i" & ren "%%i" "!var:%str%=!")
pause>nul 2>nul
*********************************************
运行后提示:命令语法不正确。(实际上:除了含!号的文件名不能够去空格外,普通文件名还是能够去空格的)
这是为什么?
+++++++++++++++++++++
原因已经查到了:是因为文件夹里面的文件名,有一个文件名字是!号开头的
就是不知道,应该怎样解决?谢谢
原因已经查到了:是因为文件夹里面的文件名,有一个文件名字是!号开头的
就是不知道,应该怎样解决?谢谢 路过
帮顶一下 能请教下去空格的意义吗? tzxinqing 发表于 2023-9-16 10:32
能请教下去空格的意义吗?
有一些场景需要 不需要重命名,将文件名变量中空格替换成%20即可 tzxinqing 发表于 2023-9-16 10:32
能请教下去空格的意义吗?
有的软件是不支持含空格及中文的路径的,特别是哪些开发已经找不到的软件。 本帖最后由 yyz2191958 于 2023-9-16 12:38 编辑
wxinchun92 发表于 2023-9-16 12:15
不需要重命名,将文件名变量中空格替换成%20即可
我没有一点基础,能够直接给完整代码吗?
恭喜解决了 本帖最后由 wxinchun92 于 2023-9-16 12:41 编辑
yyz2191958 发表于 2023-9-16 12:28
我没有一点基础,能够直接给完整代码吗?@echo off
setlocal enabledelayedexpansion
set /p a=请输入:
for /f "delims=" %%i in ("%a%") do (
set aa=%%i
set aa=!aa: =%%20!
set a=!aa!
)
echo. %a%
pause wxinchun92 发表于 2023-9-16 12:39
我试一试先 谢谢 wxinchun92 发表于 2023-9-16 12:39
输入什么? yyz2191958 发表于 2023-9-16 12:46
输入什么?
带空格的变量啊 学习学习 本帖最后由 yyz2191958 于 2023-9-16 18:22 编辑
wxinchun92 发表于 2023-9-16 12:52
带空格的变量啊
能不能不需要输入?放到文件夹运行,就直接去除本目录里面文件名的空格? 输入是学习,并不是改名 szwp 发表于 2023-9-16 18:38
输入是学习,并不是改名
我不明白 惭愧 yyz2191958 发表于 2023-9-16 18:42
我不明白 惭愧
你应该不需要了,我也是刚学习。网址URL的空格是%20,其他的不是 wxinchun92 发表于 2023-9-16 19:07
你应该不需要了,我也是刚学习。网址URL的空格是%20,其他的不是
我也是学习 wxinchun92 发表于 2023-9-16 19:07
你应该不需要了,我也是刚学习。网址URL的空格是%20,其他的不是
原来的哪个已经哪个使用
我是想看看,有没有更加简单的代码 for %%f in (*) do call :r %%f
pause
:r
set f=%*
ren "%f%" %f: =% szwp 发表于 2023-9-17 08:06
for %%f in (*) do call :r %%f
pause
:r
我试一试先 谢谢 本帖最后由 yyz2191958 于 2023-9-17 08:49 编辑
szwp 发表于 2023-9-17 08:06
for %%f in (*) do call :r %%f
pause
:r
成功了非常感谢
yyz2191958 发表于 2023-9-17 08:26
普通文件名实用成功
文件名有!号的不行
将结果截屏 本帖最后由 yyz2191958 于 2023-9-17 08:51 编辑
szwp 发表于 2023-9-17 08:39
将结果截屏
经过再次测试,成功了非常感谢(原来不行,可能是我加了回显和exit)
yyz2191958 发表于 2023-9-17 08:50
经过再次测试,成功了非常感谢(原来不行,可能是我加了回显和exit)
啥都没动,怎么会原来的就不行了呢。 szwp 发表于 2023-9-17 08:57
啥都没动,怎么会原来的就不行了呢。
问题发现了:
1.如果按照你的代码,啥也不动————成功
2..如果在你的代码的最后加exit ———不成功
*************************************
为什么不能够在最后加exit?
谢谢 yyz2191958 发表于 2023-9-17 09:04
问题发现了:
1.如果按照你的代码,啥也不动————成功
2..如果在你的代码的最后加exit ———不成 ...
将结果截屏才能知道原因 估计加错位置了,将pause改成exit szwp 发表于 2023-9-17 09:06
估计加错位置了,将pause改成exit
我将 pause 删除了
页:
[1]
2