bat:递归重命名文件

bat:递归重命名文件

我想递归地将某个分区中的所有 *.doc 文件重命名为 *.txt。我尝试了以下操作,但没有成功...

@echo off
echo +-------------------------------------------+
echo :         exec cmd in every subdir          :
echo +-------------------------------------------+

FOR /R ".\" %%F IN (.) DO (
    ren "*.doc" "*.txt"
)

@pause

我究竟做错了什么?


更新:这对我有用...... 我通过单击 MS 文件资源管理器 (Win7) 中的文件来运行它,并将 .bat 设置为可执行文件。我没有在 cmd 提示符下尝试 - 我想知道这是否会导致差异?

@echo off

FOR /R ".\" %%F IN (.) DO (
 ren "%%F\*.doc" "*.txt"
)
@pause

答案1

批处理文件中有几个小错误。

这是一个可以通过命令行运行的版本:

FOR /R "." %F IN (.) DO ren "%F\*.doc" "*.txt"

.bat文件中:

FOR /R "." %%F IN (.) DO ren "%%F\*.doc" "*.txt"

在 Windows 7 64 位上测试:

在此处输入图片描述

相关内容