用Windows批处理脚本重命名目录中的所有文件

我将如何编写一个批处理或cmd文件,将重命名目录中的所有文件? 我正在使用Windows

改变这个:

750_MOT_Forgiving_120x90.jpg 751_MOT_Persecution_1_120x90.jpg 752_MOT_Persecution_2_120x90.jpg 753_MOT_Hatred_120x90.jpg 754_MOT_Suffering_120x90.jpg 755_MOT_Freedom_of_Religion_120x90.jpg 756_MOT_Layla_Testimony_1_120x90.jpg 757_MOT_Layla_Testimony_2_120x90.jpg 

对此:

 750_MOT_Forgiving_67x100.jpg 751_MOT_Persecution_1_67x100.jpg 752_MOT_Persecution_2_67x100.jpg 753_MOT_Hatred_67x100.jpg 754_MOT_Suffering_67x100.jpg 755_MOT_Freedom_of_Religion_67x100.jpg 756_MOT_Layla_Testimony_1_67x100.jpg 757_MOT_Layla_Testimony_2_67x100.jpg 

FOR语句循环访问名称(键入FOR /?获取帮助),以及字符串搜索和替换(键入SET /?获取帮助)。

 @echo off setlocal enableDelayedExpansion for %%F in (*120x90.jpg) do ( set "name=%%F" ren "!name!" "!name:120x90=67x100!" ) 

更新 – 2012年11月7日

我已经调查了RENAME命令如何处理通配符: Windows RENAME命令如何解释通配符?

事实证明,使用RENAME命令可以很容易地解决这个问题,而不需要任何批处理脚本。

 ren *_120x90.jpg *_67x100.* 

_之后的字符数量无关紧要。 如果120x90变成xxxxxxxxxxx ,重命名仍然可以正常工作。 这个问题的重要方面在于最后一个_和之间的整个文本. 被替换。

从Windows 7开始,您可以在一行PowerShell中执行此操作。

 powershell -C "gci | % {rni $_.Name ($_.Name -replace '120x90', '67x100')}" 

说明

powershell -C "..."启动PowerShell会话来运行带引号的命令。 当命令完成时,它返回到外壳。 -C是命令的简称。

gci返回当前目录中的所有文件。 它是Get-ChildItem的别名。

| % {...} | % {...}使一个管道来处理每个文件。 %Foreach-Object的别名。

$_.Name是管道中当前文件的名称。

($_.Name -replace '120x90', '67x100')使用-replace操作符来创建新的文件名。 每个出现的第一个子字符串被替换为第二个子字符串。

rni更改每个文件的名称。 第一个参数(称为-Path )标识文件。 第二个参数(称为-NewName )指定新名称。 rni是Rename-Item的别名。

 $ dir Volume in drive C has no label. Volume Serial Number is A817-E7CA Directory of C:\fakedir\test 11/09/2013 16:57 <DIR> . 11/09/2013 16:57 <DIR> .. 11/09/2013 16:56 0 750_MOT_Forgiving_120x90.jpg 11/09/2013 16:57 0 751_MOT_Persecution_1_120x90.jpg 11/09/2013 16:57 0 752_MOT_Persecution_2_120x90.jpg 3 File(s) 0 bytes 2 Dir(s) 243,816,271,872 bytes free $ powershell -C "gci | % {rni $_.Name ($_.Name -replace '120x90', '67x100')}" $ dir Volume in drive C has no label. Volume Serial Number is A817-E7CA Directory of C:\fakedir\test 11/09/2013 16:57 <DIR> . 11/09/2013 16:57 <DIR> .. 11/09/2013 16:56 0 750_MOT_Forgiving_67x100.jpg 11/09/2013 16:57 0 751_MOT_Persecution_1_67x100.jpg 11/09/2013 16:57 0 752_MOT_Persecution_2_67x100.jpg 3 File(s) 0 bytes 2 Dir(s) 243,816,271,872 bytes free