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"




欢迎光临 中国DOS联盟论坛 (http://cndos.fam.cx/forum/) Powered by Discuz! 2.5