我参考使用批处理文件将文本添加到文件名末尾(但在扩展名之前)的问题,因为我有同样的问题。使用带有所有更新的 Windows 7 32 位企业版(我知道,我知道......)我编写了一个pdfrename.bat
只有三行的小批处理文件:
一条评论,从行的右边开始,
REM
并且没有“隐藏的”延续符号建议的命令,从@Karan 提供的源代码复制粘贴,注释掉
REM
采用的批处理命令(加倍
%
):REM Rework 2020-12-16 REM for %a in (*.txt) do ren "%~a" "%~na version 1%~xa" for %%F in (*.pdf) do ren "%%~F" "%%~nF OdB%%~xF"
从命令提示符运行命令 (3.),
for %F in (*.pdf) do ren "%~F" "%~nF OdB%~xF"
工作正常。
但从 Windows 资源管理器执行整个批处理文件pdfrename.bat
失败。从命令提示符运行批处理文件pdfrename.bat
会产生错误消息语法错误:
Die folgende Verwendung des Pfadoperators zur Ersetzung eines Batchparameters
ist ungültig: %~na version 1%~xa"
[...]
你不需要懂德语。重要的一点是错误消息是指注释掉的第二行(2.),而不是第三行!
我尝试重新输入REM
,在 REM 之后插入了一个制表符,REM
在第一个 ( REM REM ....
) 之后插入了第二行,在具有相同内容的第二行之后插入了第三行,然后删除了第二行 - 没有任何改变:批处理文件在注释掉时终止第二行有语法错误。一旦从批次中消除了受指控的第二行,该批次就可以正常工作。
我搜索了“REM 被忽略”,但没有运气,所以我在这里发布了这个问题。在此之前,我从未听说过或经历过命令处理器至少会尝试分析注释掉的行——如果在注释符号之后代码有问题,它会终止批处理脚本。