我有这样的文件列表: icone1.gif icone2.gif icone1.gif icone11.gif icone12.gif icone13.gif icone14.gif icone15.gif
我想从中删除'e',所以他们会icon1.gif,icon2.gif等等......
我在DOS命令提示符下尝试了这个:
ren icone*.gif icon*.gif
没用。
答案 0 :(得分:1)
通过键入" notepad go.bat"在文件夹中创建批处理文件。在命令提示符下点击进入并将其删除然后保存并退出记事本:
for %%i in ("*.gif") do (set fname=%%i) & call :rename
goto :eof
:rename
::Cuts off 1st five chars, then appends Icon and the remaining chars
ren "%fname%" "Icon%fname:~5%"
goto :eof
在Windows中双击批处理文件或从命令提示符处键入go并按Enter键
答案 1 :(得分:1)
有关可解释为什么命令不起作用的规则,请参阅How does the Windows RENAME (REN) command interpret wildcards?。
假设所有文件名都在“icone”之后有一个数字(实际上只关心你在“icone”之后没有另外的“e”),那么下面的一个衬里将在命令行中运行。
for /f "tokens=1* delims=eE" %A in ('dir /b icone*.gif') do @ren "%Ae%B" "%A%B"
如果将命令放在批处理脚本中,则加倍百分比。
对于一个非常简单而强大的解决方案,请使用我的JREN.BAT regular expression renaming utility纯脚本(混合JScript /批处理),它可以在XP之后的任何Windows机器上本机运行。
jren "^(icon)e(.*\.jpg)" "$1$2" /i