将文件名转换为项目需求模式

时间:2014-12-17 05:46:49

标签: batch-file

我想将此GIF文件转换为同一文件夹

MUZ-171669-JA_fig_10.gif

MUZ-171669-JA_fig_11a.gif

在这种模式中:

  1. muz 转换为 muz12345
  2. 此处数值“171669”必须最后4位数字表示:

    1. “171669”转换为 1669

    2. fig_10 会转换为此值 f010

    3. 有时名称就像这样 fig_11a 所以在这种情况下它应该转换成这样: 的器F11a

      有数百个具有此类文件名的gif文件

      后缀为 fig_01至fig_999

      它应该像这样转换:

      后缀 f001至f999

      有时会出现 fig_11a 后缀,应该像 f011a一样进行转换。

      以下输出:

      MUZ-17的 1669 -JA_fig_10.gif

      MUZ-17的 1669 -JA_fig_11a.gif

      必须是这样的:

      muz12345的 1669 f010.gif

      muz12345的 1669 f11a.gif

      我是手动完成的,需要花费很多时间。我的朋友告诉我这可以使用批量扩展。但我在批处理命令方面没有必要的知识。

      任何人都可以帮助我吗?它的项目要求。

1 个答案:

答案 0 :(得分:0)

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET "sourcedir=U:\sourcedir\t w o"
FOR /f "tokens=1-7delims=-_." %%a IN (
  'dir /b /a-d "%sourcedir%\muz-*-*_*_*.gif" '
  ) DO (
  IF "%%g"=="" (
   SET "num2=%%b"
   SET "fig=%%d"
   SET "num3=00%%e"
   ECHO(REN "%sourcedir%\%%a-%%b-%%c_%%d_%%e.%%f" "muz12345!num2:~-4!!fig:~0,1!!num3:~-3!.%%f"
  )
)

GOTO :EOF

这应该适当地处理文件。您需要更改sourcedir的设置以适合您的具体情况。

为了测试目的,所需的REN命令仅为ECHO在您确认命令正确后,将ECHO(REN更改为REN以实际重命名文件。