我想重命名部分文件名

时间:2015-05-12 14:44:10

标签: batch-file cmd

我在多个子文件夹中有多个文件,如下所示:

C:\Folder1\ABCndsnoids.txt
C:\Folder1\ABCkfdsf.txt
C:\Folder1\ABCdds.txt
C:\Folder2\ABCkjnfjdfds.txt
C:\Folder2\ABCanmdlkmdsa.txt
C:\Folder3\ABCinvdsjoivdsjvds.txt
C:\Folder3\ABCnfdsnds.txt

所以每个文件都以ABC开头,但之后会有不同的字符。现在我希望用EFGHI取代ABC而不改变任何其他角色。

我使用了以下cmd,但它替换了文件名的第4个和第5个字符。

for /R %x in (ABC*) do ren "%x" EFGHI*

示例:

C:\Folder3\**ABC12345**.txt was replaced to C:\Folder3\**EFGHI345**.txt

我不希望被替换的第4和第5个被删除。

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

我认为这会做你想要的。在验证后删除ECHO

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION

FOR /R %%x IN (ABC*) DO (
  SET OLD=%%~nxx
  SET NEW=EFGHI!OLD:~3!
  ECHO REN "!OLD!" "!NEW!"
)