我想通过使用 Windows 批处理文件重命名文件名,将文件名从 "how-to-rename-file.jpg" 改为 "how-to-reuse-file.jpg"。即我只想在文件名中替换一个或两个单词。请注意保留原有的 html 标签格式。
@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
提示:您可以在此阅读有关子字符串的更多信息: http://ss64.com/nt/syntax-substring.html http://ss64.com/nt/syntax-replace.html
Set "File=%%~nx#"
, 而不是简单的 Set "File=%%#"
? - Marco Demaio上面的代码没有重命名文件 - 路径是一个问题,源文件名不正确。
这将适用于当前文件夹中的文件 - 除了名称中带有!的文件将会出现问题。
@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
pushd "c:\folder"
放在循环上方,或使用 cd /d "c:\folder"
。 - foxidrive