如何通过在Windows中使用批处理替换子字符串来重命名文件

时间:2013-04-21 07:21:33

标签: windows string file batch-file rename

我想重命名文件名,如“how-to- 重命名 -file.jpg”“how-to- 重复使用 -file.jpg“使用Windows批处理文件

即。我只想替换文件名中的一两个单词。

2 个答案:

答案 0 :(得分:42)

@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

答案 1 :(得分:32)

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

这将适用于当前文件夹中的文件 - 除了那些!在名字中将是一个问题。

@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