X
在Windows批处理脚本中重命名文件不成功。 请劝告。感谢帮助
set "source=C:\Users\Processed"
for /f "delims=" %%A in ('findstr /s /m /l /c:"949010" "%source%\*"')
do (
set "fname=%%A"
setlocal enabledelayedexpansion
set "fname=!fname:{=!"
ren %%A "!fname!"
endlocal &
copy /y "%source%\%fname%" "C:\Users\949010" )
答案 0 :(得分:2)
我审核时你的代码中有5个小错误! BTW修改原始代码是一个坏主意,不知道你在问题本身中做了什么 ...
fname
变量必须只包含文件的名称和扩展名,因此必须在~nx
变量中使用%%A
修饰符。do
子句必须放在for
命令的同一行中。ren
命令中,两个名称应括在引号中(不是此案例中的错误)。&
符号用于分隔同一行中的两个命令 。 应该是&
之后的命令。for
循环内变化的变量的所有引用必须用感叹号括起来。我还以标准方式修改了代码的正当性。
这是更正后的代码:
endlocal
答案 1 :(得分:0)
set "source=C:\Users\Processed"
for /f "delims=" %%A in ('findstr /s /m /l /c:"949010" "%source%\*"') do (
set "fname=%%~nxA"
setlocal enabledelayedexpansion
set "fname=!fname:{=!"
ren "%%A" "!fname!"
copy /y "%%A" "C:\Users\949010"
endlocal
)