【发布时间】:2015-05-08 01:22:20
【问题描述】:
我想从数千个文件中删除第三个“_”之后的文件名部分。第三个“_”之后的结构有所不同,在某些情况下包含“_”。第一部分的长度各不相同,所以我不能只删除前 15 个字符。结果应该是唯一的。
文件名如下所示:
00_TEXT_=Text00._AA1234L_AA1_1.pdf
00_TEX_=Text00._AA1234L_AA1_2.pdf
00_TEXT_=TextText00._DD2023A.pdf
00_TEXT_=Text00._AA2345L_BB1_1.pdf
00_TEXT_=Text00._AA2345L_BB1_2.pdf
结果应如下所示:
AA1234L_AA1_1.pdf
AA1234L_AA1_2.pdf
DD2023A.pdf
AA2345L_BB1_1.pdf
AA2345L_BB1_2.pdf
知道为什么这不起作用:
@echo off
setlocal enabledelayedexpansion
set deletestring=*_*_*_
for /f "delims==" %%F in ('dir /b ^| find "%deletestring%"') do (
set oldfilename=%%F
set newfilename=!oldfilename:%deletestring%=!
Ren "!oldfilename!" "!newfilename!"
)
【问题讨论】:
-
我用 %% 替换了 % 但它不起作用 - 控制台显示:!文件名! !文件名!
标签: windows batch-file rename