Batch file 根据项目要求替换同一目录中的文件名
我有4种类型的图形:图形、表格、方程式和内联方程式 在同一目录中有500多个这样的图形。问题是我想将其转换为项目需求,如下所示: MUZ-171669-KH_eq_01.gif必须转换为muz12345169e001.gif MUZ-171669-KH_eq_03a.gif必须转换为muz12345169e03a.gif MUZ-171669-KH_fig_10.gif必须转换为muz123451690010.gif MUZ-171669-KH_fig_11a.gif必须转换为muz12345169011a.gif MUZ-171669-KH_ineq_01.gif必须转换为muz12345169r001.gif MUZ-171669-KH_ineq_04a.gif必须转换为muz12345169r04a.gif MUZ-171669-KH___01.gif必须转换为MUZ12345169T001.gif MUZ-171669-KH_t_02b.gif必须转换为muz12345169t02b.gif 这意味着: 前缀MUZ必须转换为muz12345 项目代码编号171669必须转换为1669。根据1669、1670、1671等图形系列(即171670)进行的此更改必须转换为1670 171671必须转换为1671,依此类推 现在有四种类型的后缀图形名称: 它们应始终转换为4位,如下所示: eq_01必须转换为e001 eq_03a必须转换为e03a 图10必须转换为0010 图11a必须转换为011a ineq\U 01必须转换为r001 ineq_04a必须转换为r04a t\u 01必须转换为t001 t_02b必须转换为t02b 有时出现eq\u 03a、图11a、ineq\u 04a、t\u 02b后缀。在这种情况下,它们应该像这样进行转换e03a、011a、r04a、t02b——仅四位数字 4图形的文件号介于000到999,即0001到0999,r001到r999,e001到e999,t001到t999 我有下面的代码。但该代码不适用于图形和内联公式图形Batch file 根据项目要求替换同一目录中的文件名,batch-file,cmd,Batch File,Cmd,我有4种类型的图形:图形、表格、方程式和内联方程式 在同一目录中有500多个这样的图形。问题是我想将其转换为项目需求,如下所示: MUZ-171669-KH_eq_01.gif必须转换为muz12345169e001.gif MUZ-171669-KH_eq_03a.gif必须转换为muz12345169e03a.gif MUZ-171669-KH_fig_10.gif必须转换为muz123451690010.gif MUZ-171669-KH_fig_11a.gif必须转换为muz123451
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
FOR /f "tokens=1-7delims=-_." %%a IN ('dir /b /a-d "MUZ-*-*_*_*.gif" ') DO (
IF "%%g"=="" (
SET "num2=%%b"
SET "fig=%%d"
SET "num3=00%%e"
REN "%%a-%%b-%%c_%%d_%%e.%%f" "muz12345!num2:~-4!!fig:~0,1!!num3:~-3!.%%f"
)
)
GOTO :EOF
有人能帮忙吗?在包含图像文件的目录中运行一个批处理文件,其中包含以下代码:
@echo off
setlocal EnableDelayedExpansion
for %%F in (MUZ-17????-KH_eq_??.*) do (
set "OldFileName=%%~F"
set "NewFileName=muz12345!OldFileName:~6,4!e0!OldFileName:~17,2!%%~xF"
ren "!OldFileName!" "!NewFileName!"
)
for %%F in (MUZ-17????-KH_eq_???.*) do (
set "OldFileName=%%~F"
set "NewFileName=muz12345!OldFileName:~6,4!e!OldFileName:~17,3!%%~xF"
ren "!OldFileName!" "!NewFileName!"
)
for %%F in (MUZ-17????-KH_fig_??.*) do (
set "OldFileName=%%~F"
set "NewFileName=muz12345!OldFileName:~6,4!00!OldFileName:~18,2!%%~xF"
ren "!OldFileName!" "!NewFileName!"
)
for %%F in (MUZ-17????-KH_fig_???.*) do (
set "OldFileName=%%~F"
set "NewFileName=muz12345!OldFileName:~6,4!0!OldFileName:~18,3!%%~xF"
ren "!OldFileName!" "!NewFileName!"
)
for %%F in (MUZ-17????-KH_ineq_??.*) do (
set "OldFileName=%%~F"
set "NewFileName=muz12345!OldFileName:~6,4!r0!OldFileName:~19,2!%%~xF"
ren "!OldFileName!" "!NewFileName!"
)
for %%F in (MUZ-17????-KH_ineq_???.*) do (
set "OldFileName=%%~F"
set "NewFileName=muz12345!OldFileName:~6,4!r!OldFileName:~19,3!%%~xF"
ren "!OldFileName!" "!NewFileName!"
)
for %%F in (MUZ-17????-KH_t_??.*) do (
set "OldFileName=%%~F"
set "NewFileName=muz12345!OldFileName:~6,4!t0!OldFileName:~16,2!%%~xF"
ren "!OldFileName!" "!NewFileName!"
)
for %%F in (MUZ-17????-KH_t_???.*) do (
set "OldFileName=%%~F"
set "NewFileName=muz12345!OldFileName:~6,4!t!OldFileName:~16,3!%%~xF"
ren "!OldFileName!" "!NewFileName!"
)
endlocal