我写了一个简单的.bat
附加字符串 "somethingnew"
的文件.txt
前面文件:
for %%x in (*.txt) do ren "%%x" "somethingnew%%~nx.txt"
但是当我运行它时,它会正确重命名每个文件,但最后它会再次重命名第一个文件。
例如,如果有2个文件1.txt
和2.txt
那么就会发生这样的情况:
1.txt
变成somethingnew1.txt
2.txt
变成somethingnew2.txt
somethingnew1.txt
变成somethingnewsomethingnew1.txt
我发现了类似的问题,如 this one ,但是,for 循环对每个文件运行两次,而这里它对第一个文件运行两次,所以我不确定解决方案是什么。
谢谢。
最佳答案
简单的 FOR 循环可以获取已重命名的文件,这是因为 for 循环获取一个文件名,执行 block 代码,然后获取下一个文件名。
FOR/F 循环将在执行 block 代码之前获取命令的完整输出。
for /F "delims=" %%x in ('dir /b *.txt') do (
ren "%%x" "somethingnew%%~nx.txt"
)
关于windows - For 循环运行两次,但仅针对第一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66168838/