寻找修改文件名的简单批处理脚本

问题描述:

我有一个以.swf结尾的文件夹列表。寻找修改文件名的简单批处理脚本

我想将所有这些文件从X.swf更改为X<some number>.swf

我该怎么做?

+0

你想计算每个文件的数量还是一直是相同的数字? – weberik

这个小脚本会将所有*.swf文件更改为等效的*_42.swf文件。

@setlocal enableextensions enabledelayedexpansion 
@echo off 
for /f %%a in ('dir /b *.swf') do (
    set fspec=%%a 
    set newfspec=!fspec:~0,-4!_42.swf 
    echo ren !fspec! !newfspec! 
) 
endlocal 

实际上,就像现在这样,它只会回显它想要执行的命令。一旦你开心,他们是正确的,你可以从上面的重命名行删除echo

它的工作原理是利用for /f让所有SWF文件的列表,然后使用字符串操作:

  • 除去最后四个字符(.swf扩展);然后
  • 在最后添加新的_42.swf扩展。

而且,请确保您先备份它们:-)

您可以直接在命令提示符下使用下面的一行代码:

FOR %F IN (*.swf) DO RENAME "%F" "%~nF123.*" 

其中123看台为您的选择数量。

或者,您可以创建批处理文件并利用其接受参数的能力。使用下面的脚本:

@ECHO OFF 
SET "suffix=%~1" 
FOR %%F IN (*.swf) DO RENAME "%%F" "%%~nF%suffix%.*" 

现在,如果该批次的名称为renamer.bat,你可以调用它像这样:

renamer.bat 2011 

,它会在当前目录下添加2011.swf文件的名称。

假设<X>在您的描述中应该是不变的,并且您没有明确要求批处理脚本来解决您的问题,您可以使用Microsoft资源文章中提到的Windows资源管理器,名称为“Rename a file”。

这里有一个从上述文章的摘录:。

“你也可以在同一时间,这是将相关的项目有用的重命名多个文件要做到这一点,选择文件[然后按F2]输入一个名称,然后每个文件将在最后以新名称和不同的连续编号保存(例如,重命名文件(2),重命名文件(3)等)。“