我在一个文件夹中有几千张照片,所有照片都以模式persons name - location.jpg
命名,例如John Doe - Mountain.jpg
。我正在寻找一个批处理文件,它将根据文件名的第一部分创建文件夹,并将该文件和所有其他匹配的文件名移动到该文件夹中,从而得到所有John Doe&#39的最终结果;在他的文件夹中的图片。
答案 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
您需要更改sourcedir
和destdir
的设置以适合您的具体情况。
所需的MD命令仅用于ECHO
用于测试目的。 在您确认命令正确之后,将ECHO(MD
更改为MD
以实际创建目录。附加2>nul
以禁止错误消息(例如,当目录已存在时)
为了测试目的,所需的MOVE命令仅为ECHO
。 在您确认命令正确后,将ECHO(MOVE
更改为MOVE
以实际移动文件。附加>nul
以取消报告消息(例如1 file moved
)
请注意,目录名中的终止空间无关紧要。