我有一些文件,例如:
0110_01_在线.png
0122_01_01_在线.png
: f0122_0201_在线.png
每个文件名中都有共同的文本“_online”。
我只想使用 .bat 文件中的一行程序从每个文件名中删除“_online”,因为每次文件名和文件数量都会发生变化。
我在尝试:
任*_online.png*.png
但它不起作用。
请建议我在批处理文件中执行此操作的正确方法
答案1
您可能对以下问题的答案感兴趣Windows RENAME 命令如何解释通配符?
不幸的是,REN 命令本身无法为您提供所需的结果。您可以online
使用 来消除 ,但仅使用 REN 命令无法ren *_online.png *_.png
消除。_
使用本机命令的最简单的解决方案是一个小的批处理文件:
@echo off
setlocal enableDelayedExpansion
for /f "eol=: delims=" %%F in ('dir /b *_online.png') do (
set "file=%%F"
ren "!file!" "!file:~0,-11!.png"
)
如果您的文件名包含该!
字符(这种情况不太可能发生),则需要:
@echo off
setlocal disableDelayedExpansion
for /f "eol=: delims=" %%F in ('dir /b *_online.png') do (
set "file=%%F"
setlocal enableDelayedExpansion
ren "!file!" "!file:~0,-11!.png"
endlocal
)
答案2
我不知道如何使用批处理文件。但我有一个简单的方法来实现你的需求。你可以使用 Total commander 和 Multi Rename Tool,结合正则表达式选项来批量重命名你想要的文件。我希望这个技巧能帮到你