如何为文件夹中的所有文件和文件夹添加前缀?(视窗)


14

以下命令仅更改文件名,而不更改文件夹。

for %a in (*) do ren "%a" "00_%a"


您是否绝对必须使用批处理文件?您不能使用“重命名母版”之类的程序来执行此操作吗?
Dour High Arch

Answers:


15

以下命令仅更改文件名,而不更改文件夹。

for %a in (*) do ren "%a" "00_%a"

笔记:

  • for不建议如上所述使用。
  • 文件可能会多次重命名。
  • 为何原因请参见下文。

cmdshell中使用以下命令:

for /f "tokens=*" %a in ('dir /b') do ren "%a" "00_%a"

在批处理文件中(替换%%%):

for /f "tokens=*" %%a in ('dir /b') do ren "%%a" "00_%%a"

注意:

这是至关重要的,你使用FOR /F,而不是简单的FOR

所述FOR /F褶裥的整个结果DIR命令它开始迭代之前,而简单的FOR开始迭代后的内部缓冲器是满的,这增加了多次重命名相同的文件的风险。

dbenham在其答案中所建议的,将“文本”添加到多个文件名的末尾


进一步阅读


0

要在文件夹(目录)而不是文件上执行此For循环,只需添加/D开关即可。

for /D %a in (*) do ren "%a" "00_%a"

来自for /?

FOR / D%variable IN(设置)DO命令[命令参数]

If set contains wildcards, then specifies to match against directory
names instead of file names.

ren确实适用于文件夹。该限制是“不能指定不同的驱动器或路径目标。
DavidPostill

@DavidPostill是的,这是一种古老的习惯,我将其改回了Ren
Ƭᴇcʜιᴇ007

您可以在一个命令中同时处理文件和文件夹(请参阅我的答案)。而且我怀疑for /d可能还存在尝试多次处理值的问题(另请参阅我的答案)。
DavidPostill
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.