在 Windows 中使用索引保留批量重命名文件

问题描述

我有一批格式如下的文件

YYYYYYYYYY(X).txt

YYYYYYYYYY(XX).txt

YYYYYYYYYY(XXX).txt

YYYYYYYYYY(XXXX).txt

Y 是没有固定长度的简体汉字/标点符号,即编号。 Y 的范围从几个到 10 个以上

X 是数字 (0-9)

我想重命名所有文件删除前面的所有Y。 cmd可以使用什么命令?

解决方法

这里有一些未经测试的快速示例代码,它应该重命名,YYYYYYYYYY(X).txt(X).txtYYYYYYYYYY(XX).txt(XX).txtYYYYYYYYYY(XXX).txt(XXX).txt,和 YYYYYYYYYY(XXXX).txt(XXXX).txt以不存在的匹配名称为准,这正是您的问题所要问的。

@For %%G In ("C:\Users\Gary\Documents\?*(*).txt") Do @(
    Set "}=%%~nG" & SetLocal EnableDelayedExpansion
    Ren "%%G" "(!}:*(=!%%~xG" & EndLocal)

这里有一些额外的未经测试的示例代码,它应该重命名,YYYYYYYYYY(X).txtX.txtYYYYYYYYYY(XX).txtXX.txtYYYYYYYYYY(XXX).txtXXX.txt,和 YYYYYYYYYY(XXXX).txtXXXX.txt以不存在的匹配名称为准

For %%G In ("C:\Users\Gary\Documents\*(*).txt") Do (
    Set "f=%%~nG"
    SetLocal EnableDelayedExpansion
    Set "n=!f:*(=!"
    Ren "%%G" "!n:~,-1!%%~xG"
    EndLocal
)
,

[未测试]

for /f "delims=" %%b in ('dir /b /a-d "d:\the path\*(*).txt" ') do (
 for /f "tokens=2delims=()" %%c in ("%%b") do ren "d:\the path\%%b" "%%c%%~xb")