![如何为文件夹中的所有文件和文件夹添加前缀?(Windows)](https://linux22.com/image/1480975/%E5%A6%82%E4%BD%95%E4%B8%BA%E6%96%87%E4%BB%B6%E5%A4%B9%E4%B8%AD%E7%9A%84%E6%89%80%E6%9C%89%E6%96%87%E4%BB%B6%E5%92%8C%E6%96%87%E4%BB%B6%E5%A4%B9%E6%B7%BB%E5%8A%A0%E5%89%8D%E7%BC%80%EF%BC%9F%EF%BC%88Windows%EF%BC%89.png)
以下命令仅更改文件的名称,但不更改文件夹的名称。
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.