Windows批处理文件:查找目录,若不存在则创建,并将文件移动到该目录

9
我正在尝试创建一个批处理文件或其他脚本,将一个文件夹中的内容移动到另一个目录中以其名称命名的文件夹。例如:ShowName.Episode.Title.mkv 应该被移动到 \movies\showname 中。如果 \movies\showname\ 不存在,脚本将创建它。通常一次需要移动10-15个文件。有什么建议吗?谢谢!
2个回答

10

您可以使用以下方式有条件地创建文件夹:

if not exist \movies\showname mkdir \movies\showname
将文件移动到其中:
move ShowName.Episode.Title.mkv \movies\showname

要获取有关这些命令的更多信息,请打开命令提示符并键入:

help if

help move

5
@ECHO OFF
SETLOCAL
SET "sourcedir=c:\sourcedir"
SET "destdir=c:\destdir"
FOR /f "tokens=1-4delims=." %%a IN (
 'dir /b /a-d "%sourcedir%\*.*.*.mkv" '
 ) DO (
  MD "%destdir%\%%a" 2>NUL
  MOVE "%sourcedir%\%%a.%%b.%%c.%%d" "%destdir%\%%a\"
)
GOTO :EOF

这应该可以移动您的文件。当然,您需要更改目录名称 - 我不知道您的源目录在哪里,但在您的情况下,目标目录变为 \movies

或许先尝试使用 ECHO MOVE,以确保移动操作是符合要求的。

2>nulMD 上会阻止出现指示目录已存在的错误消息。

MOVE 行末添加 >nul 将阻止出现“文件已移动”消息。


简单问题的简单答案。 - sandyiit

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接