以下命令仅更改文件的名称,但不更改文件夹的名称。
for %a in (*) do ren "%a" "00_%a"
答案1
以下命令仅更改文件的名称,但不更改文件夹的名称。
for %a in (*) do ren "%a" "00_%a"
笔记:
for
不建议按上述方法使用。- 文件有可能被重命名多次。
- 原因请参见下文。
在 shell 中使用以下命令cmd
:
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
在内部缓冲区已满后开始迭代,这增加了多次重命名同一文件的风险。
根据建议德本汉姆在他的回答中在多个文件名末尾添加“文本”:
进一步阅读
- Windows CMD 命令行的 AZ 索引- 与 Windows cmd 行相关的所有事物的绝佳参考。
- 目录- 显示文件和子文件夹的列表。
- 对于/f- 循环命令以执行另一个命令的结果。
答案2
要对文件夹(目录)而不是文件执行此 For 循环,只需包含开关/D
。
for /D %a in (*) do ren "%a" "00_%a"
从for /?
:
FOR /D %变量 IN (设置) DO 命令 [命令参数]
If set contains wildcards, then specifies to match against directory names instead of file names.