如何使用DOS命令从文件夹中的文件列表的文件名中删除单个字符?

时间:2015-05-13 22:37:57

标签: dos

我有这样的文件列表: 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

没用。

2 个答案:

答案 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