如何使用批处理文件替换 Windows 文件名中的单个字符?

Mat*_*ish 8 script windows-server-2003 batch-file batch-rename

我有一个 Windows Server 2003 服务器,它有一大堆需要重命名的文件名。基本上,我只需要将所有-(连字符)替换为_(下划线),无论它们在文件名中的哪个位置。假设没有重复。

我可以在我的 Mac 上用一个小脚本来做到这一点,但文件太大而且太疯狂了,无法传输到我的 Mac,重命名,然后返回到服务器。是否可以在 Windows 命令提示符下执行此操作而无需下载重命名器或任何其他软件?

Mur*_*per 11

从命令提示符 - 假设您的所有文件都在同一目录中:

单线

for /f "tokens=* delims= " %i in ('dir /b "*.txt"') do Set LIST=%i& set LIST | ren "%~fi" "%LIST:-=_%"

请记住,这是每个命令提示符窗口一次。这意味着如果您出于任何原因取消此操作,则需要打开另一个命令提示符并再次运行。

  • 我试图为它找出一个 for /f 方法,但在我找到解决方案之前,我的大脑已经从我的耳朵里漏出来了。破解代码,干得好! (2认同)