我有4种类型的图形:图形,表格,方程式和内联方程式。
同一目录中有500多个这样的图形。问题是我想将它转换为项目要求,如下所示:
MUZ-171669-KH_eq_01.gif 必须转换为 muz123451669e001.gif
MUZ-171669-KH_eq_03a.gif 必须转换为 muz123451669e03a.gif
MUZ-171669-KH_fig_10.gif 必须转换为 muz1234516690010.gif
MUZ-171669-KH_fig_11a.gif 必须转换为 muz123451669011a.gif
MUZ-171669-KH_ineq_01.gif 必须转换为 muz123451669r001.gif
MUZ-171669-KH_ineq_04a.gif 必须转换为 muz123451669r04a.gif
MUZ-171669-KH_t_01.gif 必须转换为 muz123451669t001.gif
MUZ-171669-KH_t_02b.gif 必须转换为 muz123451669t02b.gif
这意味着:
前缀 MUZ 必须转换为 muz12345 。
项目代码 171669 必须转换为 1669 。根据1669,1670,1671等图形系列的变化,即 171670 必须转换为 1670 。
必须将171671 转换为 1671 ,依此类推。
现在有四种类型的SUFFIX图形名称:
它们应始终转换为 4位,例如:
必须将eq_01 转换为 e001 。
必须将eq_03a 转换为 e03a 。
fig_10 必须转换为 0010 。
fig_11a 必须转换为 011a 。
必须将ineq_01 转换为 r001 。
必须将ineq_04a 转换为 r04a 。
t_01 必须转换为 t001 。
t_02b 必须转换为 t02b 。
有时会出现 eq_03a,fig_11a,ineq_04a,t_02b 后缀。在这种情况下,它们应该像 e03a,011a,r04a,t02b 一样转换 - 仅限四个数字。
4图片的文件编号介于 000 至 999 之间,即 0001 至 0999 , r001 到 r999 , e001 到 e999 , t001 到 t999 。
我有以下代码。但该代码不适用于图形和内联方程图形。
@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
有人可以帮忙吗?
答案 0 :(得分:0)
在包含图像文件的目录中运行包含以下代码的批处理文件:
@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