将文件以一种格式重命名为另一种格式

时间:2014-11-27 08:51:39

标签: windows batch-file

我有一批以下列格式命名的文件

  

STR1_xxxxxxxxxx_STR2.txt

我想删除xxxxxxxxxx部分。

即重命名为

  

STR1_STR2.txt

更新

为简单起见,请将STR1视为随机长度的随机字符串,我们不知道。它还可能包含字符“_”。

STR2是我们知道的字符串。

xxxxxxxxxxxx是一个固定长度的随机字符串,它也是我要删除的部分。

1 个答案:

答案 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