我在多个子文件夹中有多个文件,如下所示:
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个被删除。
请帮我解决这个问题。
答案 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!"
)