Board logo

标题: for语句do()中设置的变量无法在do()中扩展 [打印本页]

作者: pinghu     时间: 2008-3-1 12:22    标题: for语句do()中设置的变量无法在do()中扩展

setlocal enabledelayedexpansion for %%i in (*.pdf) do ( set new=%%~ni set new=%new:~0,-1% ren %%~nxi %new%%%~xi) 改成这样也不行 setlocal enabledelayedexpansion for %%i in (*.pdf) do ( set new=%%~ni set new=!new:~0,-1! ren %%~nxi !new!%%~xi) 如果用上述语句无法实现将所有pdf文件名最后一个半角字符去掉的话,该怎么写呢?

作者: pinghu     时间: 2008-3-1 13:32
setlocal enabledelayedexpansion for %%i in (*.pdf) do ( set new=%%~ni set new=!new:~0,-1! ren "%%~nxi" "!new!%%~xi)" 自己找到错误了,文件名最后一个字符是空格,引号如此重要!! 可以结了

作者: everest79     时间: 2008-3-1 13:40
for %%i in (*.pdf) do call :renfile "%%i" goto :eof :renfile set new=%~n1 set new=%new:~0,-1% ren "%~1" "%new%%~x1"