问题描述
YYYYYYYYYY(X).txt
YYYYYYYYYY(XX).txt
YYYYYYYYYY(XXX).txt
YYYYYYYYYY(XXXX).txt
Y 是没有固定长度的简体汉字/标点符号,即编号。 Y 的范围从几个到 10 个以上
X 是数字 (0-9)
我想重命名所有文件并删除前面的所有Y。 cmd可以使用什么命令?
解决方法
这里有一些未经测试的快速示例代码,它应该重命名,YYYYYYYYYY(X).txt
到 (X).txt
,YYYYYYYYYY(XX).txt
到 (XX).txt
,YYYYYYYYYY(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).txt
到 X.txt
,YYYYYYYYYY(XX).txt
到 XX.txt
,YYYYYYYYYY(XXX).txt
到 XXX.txt
,和 YYYYYYYYYY(XXXX).txt
到 XXXX.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")