批处理文件脚本以重命名文件的一部分

时间:2014-03-15 10:41:54

标签: batch-file cmd automation

我需要重命名以下文件:

15113810_MOM-20024-20130601_015840-1.jar

MOM-20024-20130601_015840-2.jar

15113810(this is a variable)_MOM-20024-20130601_015840-1.jar

如何使用脚本执行此操作?

echo off 
if not exist "C:\BODimp\28007\incoming" /M *.txt /D +0 goto BODIMP goto
c:\batch\stopmnctl.bat && c:\batch\startopmnctl.bat
:END

:BODIMP
IF not EXIST "C:\BODimp\28007\archive" /M *.txt /D +0 goto execute goto
forfiles /P "C:\BODimp\archive" /M *.txt /D +0 /C "cmd /c copy @path C:\BODimp"
:END

:EXECUTE
forfiles /P "C:\BODimp\28007\archive" /M *.txt /D +0 /C "cmd /c copy @path C:\BODimp\28007"
:END

请在此包含此重命名逻辑。

我的要求是从特定文件夹中复制上述格式的jar文件。通过删除第一个'_'和'的数字仪式来重命名它如果是2,则将2代替1或3 ..(即x + 1增量顺序)&将它移动到另一个文件夹,该文件将被Dbase消耗。

2 个答案:

答案 0 :(得分:0)

使用cd转到该文件夹​​,然后

move 15113810_MOM-20024-20130601_015840-1.jar MOM-20024-20130601_015840-2.jar

修改:如果要在批处理中重命名和移动文件,请查看here

答案 1 :(得分:0)

尝试使用此方法计算新名称。

@echo off
set source_filename=15113810_MOM-20024-20130601_015840-1.jar
echo.source_name=%source_filename%

for /F "usebackq tokens=2-7 delims=-_." %%i in ('%source_filename%') do call :rename_sub %%i %%j %%k %%l %%m %%n

goto :EOF

REM routine to do the rename
:rename_sub
set prefix=%1
set number=%2
set filedate=%3
set filetime=%4
set count=%5
set extension=%6

set /a "count+=1"
set target_name=%prefix%-%number%-%filedate%_%filetime%-%count%.%extension%

echo.target_name=%target_name%

goto :EOF