|
本帖最后由 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
*********************************************
运行后提示:命令语法不正确。(实际上:除了含!号的文件名不能够去空格外,普通文件名还是能够去空格的)
这是为什么?
+++++++++++++++++++++
原因已经查到了:是因为文件夹里面的文件名,有一个文件名字是!号开头的
就是不知道,应该怎样解决?谢谢
|
|