1

我正在尝试使用批处理文件将文件夹名称添加到文件中。我想使用 1 个文件夹中的文件夹名称。我有,从这里和其他来源:

for %%* in (..) do set CurrDirName=%%~n*

echo %CurrDirName%

set strPrefix=%CurrDirName%

for %%a in (*) do rename "%%a" "%CurrDirName%_%%a"

正在添加正确的文件夹名称,但它陷入了添加它的无限循环,直到文件名对于操作系统来说太长。我对此很陌生,从今天开始,所以任何帮助将不胜感激,如果你回复喜欢和白痴说话,你就不会太远了!非常感谢

4

1 回答 1

2

此行为是for命令的已知错误/功能。for 循环生成的文件列表是动态的,这意味着在循环中修改的文件将被重新添加到列表中,从而导致无限循环。

使用dir命令生成静态文件列表。

for /f "delims=" %%A in ('dir /b *') do rename "%%A" "%CurrDirName%_%%A"

查看dir /?所有选项。

欢迎来到批处理脚本的世界。:)

于 2013-10-01T14:20:07.720 回答