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"