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

Var*_*run 20 windows string rename file batch-file

我想 通过使用Windows批处理文件将文件名重命名"how-to - rename -file.jpg""how-to- reuse -file.jpg"

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

Ele*_*ios 43

@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
Run Code Online (Sandbox Code Playgroud)

我给你一个文件循环的其他例子:

更新:

我错过了语法中的一些内容'导致我上次编辑的快速输入,这里是更正后的代码:

@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
Run Code Online (Sandbox Code Playgroud)

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

  • 第二个代码正是我需要的.非常感谢你的帮助.还要感谢为我提供链接以了解有关字符串的更多信息,我发现此链接非常有用:-) (4认同)

fox*_*ive 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
Run Code Online (Sandbox Code Playgroud)

  • 这很好用。现在你可以让它在子文件夹上递归吗? (2认同)