我有一批以下列格式命名的文件
STR1_xxxxxxxxxx_STR2.txt
我想删除xxxxxxxxxx部分。
即重命名为
STR1_STR2.txt
更新:
为简单起见,请将STR1视为随机长度的随机字符串,我们不知道。它还可能包含字符“_”。
STR2是我们知道的字符串。
xxxxxxxxxxxx是一个固定长度的随机字符串,它也是我要删除的部分。
答案 0 :(得分:1)
<强> TEST.BAT 强>
@echo off
set file=STR1_xxxxxxxxxx_STR2.txt
set file2=%file:*_=%
for /f "delims=_" %%a in ("%file%") do set file1=%%a
set file1=%file1%_%file2:*_=%
ren %file% %file1%
试试这个。将此批处理文件放在有文本文件的位置。
<强>已更新强>
现在试试这个
@echo off
setlocal enabledelayedexpansion
set file=STR1_2_xxxxxxxxxx_STR2.txt
call :reverse %file% file1
for /f "delims=_" %%a in ("%file1%") do set file2=%%a
set file1=%file1:*_=%
set file1=%file1:*_=%
call :reverse %file1% file3
call :reverse %file2% file4
set file1=%file3%_%file4%
set file1=%file1: =%
ren %file% %file1%
goto :eof
:reverse
set str=%~1
set cnt=0
:loop
if "%str%" equ "" (
goto :eof
)
set chr=!str:~0,1!
set str=%str:~1%
set %2=%chr%!%2!
goto loop