如何通过在Windows中使用批次replace子string来重命名文件

我想通过使用Windowsbatch file文件名称重命名“how-to rename -file.jpg”“how-to reuse -file.jpg”

即我只想replace文件名中的一个或两个单词。

@echo off Set "Filename=how-to-rename-file.jpg" Set "Pattern=rename" Set "Replace=reuse" REM Call Rename "%Filename%" "%%Filename:%Pattern%=%Replace%%%" Call Echo %%Filename:%Pattern%=%Replace%%% :: Result: how-to-reuse-file.jpg Pause&Exit 

我给你另外一个文件循环的例子:

更新:

我错过了语法中的一些东西,因为快速输入我的最后一个编辑,这是更正后的代码:

 @echo off Setlocal enabledelayedexpansion Set "Pattern=rename" Set "Replace=reuse" For %%# in ("C:\Folder\*.jpg") Do ( Set "File=%%~nx#" Ren "%%#" "!File:%Pattern%=%Replace%!" ) Pause&Exit 

PS:你可以在这里阅读以了解更多关于子字符串: http : //ss64.com/nt/syntax-substring.html http://ss64.com/nt/syntax-replace.html

上面的代码不重命名文件 – 路径是一个问题,源文件名是不正确的。

这将对当前文件夹中的文件起作用 – 除了那些文件! 在名字将是一个问题。

 @echo off Setlocal enabledelayedexpansion Set "Pattern=rename" Set "Replace=reuse" For %%a in (*.jpg) Do ( Set "File=%%~a" Ren "%%a" "!File:%Pattern%=%Replace%!" ) Pause&Exit