在每个文件名开头添加 1 个字符

在每个文件名开头添加 1 个字符

我想在每个 jpg 文件名的开头添加 1 个字符。我制作了以下批处理文件:

for %%A in (*.jpg) do ren "%%~A" s"%%~nA%%~xA"

这几乎完美地工作,但是第一个文件被处理了两次:

ssNL201501
sNL201502
sNL201503

我做错了什么?

答案1

这几乎完美地工作,但第一个文件被处理了两次

for %%A in (*.jpg) do ren "%%~A" s"%%~nA%%~xA"

您需要使用:

for /f %%A in ('dir /b *.jpg') do ren "%%~A" s"%%~nA%%~xA"

作为德本汉姆在他的回答中解释道在多个文件名末尾添加“text”

请注意,务必使用FOR /F而不是简单的FOR。在开始迭代之前,FOR /F会收集命令的整个结果DIR,而简单的FOR会在内部缓冲区已满后开始迭代,这增加了多次重命名同一文件的风险。


进一步阅读

相关内容