用于拆分文件名的批处理文件,并使用part for new subdir进入

时间:2015-04-14 01:51:50

标签: batch-file batch-rename

我在一个文件夹中有几千张照片,所有照片都以模式persons name - location.jpg命名,例如John Doe - Mountain.jpg。我正在寻找一个批处理文件,它将根据文件名的第一部分创建文件夹,并将该文件和所有其他匹配的文件名移动到该文件夹​​中,从而得到所有John Doe&#39的最终结果;在他的文件夹中的图片。

1 个答案:

答案 0 :(得分:1)

@ECHO OFF
SETLOCAL
SETLOCAL ENABLEDELAYEDEXPANSION
SET "sourcedir=U:\sourcedir"
SET "destdir=U:\destdir"
FOR /f "delims=" %%a IN (
  'dir /b /a-d "%sourcedir%\*-*.jpg" '
  ) DO (
 FOR /f "tokens=1*delims=-" %%p IN ("%%a") DO (
  echo(MD "%destdir%\%%p"
  echo(MOVE "%sourcedir%\%%a" "%destdir%\%%p"
 )
)

GOTO :EOF

您需要更改sourcedirdestdir的设置以适合您的具体情况。

所需的MD命令仅用于ECHO用于测试目的。 在您确认命令正确之后,将ECHO(MD更改为MD以实际创建目录。附加2>nul以禁止错误消息(例如,当目录已存在时)

为了测试目的,所需的MOVE命令仅为ECHO在您确认命令正确后,将ECHO(MOVE更改为MOVE以实际移动文件。附加>nul以取消报告消息(例如1 file moved

请注意,目录名中的终止空间无关紧要。