如何将文件从具有特定扩展名的子文件夹移动到不同的子文件夹

问题描述 投票:0回答:1

我在.jpg这样的文件夹中有成千上万的.\[date]\jpg,例如:

.\2018_03_01\jpg
.\2018_03_02\jpg

...等等。

我需要向后移动一步,即

.\2018_03_01\jpg\*.jpg

...至

.\2018_03_01\*.jpg

...等等。

所有这些日期命名的文件夹都不包含这些场合应该处理的jpg子文件夹。

我想这可以用XCopy或传统的.bat批量完成,但是如何?

batch-file xcopy
1个回答
0
投票

命令XCOPY用于复制文件和整个目录,而不用于移动文件。

解决方案是在命令提示符窗口中使用FOR循环。不需要批处理文件。

在包含子目录2018_03_012018_03_02的目录中打开命令提示符窗口,然后运行以下命令行:

@for /D %I in (*) do @if exist "%I\jpg\*.jpg" echo Move files from %I\jpg ... & move "%I\jpg\*.jpg" "%I\" & rd "%I\jpg"

此FOR命令行处理当前目录中的每个非隐藏子目录。

对于每个子目录,执行IF条件以检查当前日期子目录的子目录jpg中是否存在任何* .jpg文件。

在真实条件下,首先使用ECHO输出信息,告诉您接下来会发生什么。然后执行命令MOVE以将JPEG文件从目录层次结构中的子目录jpg向上移动一级,并执行最后一个命令RD以删除子目录jpg(如果它现在为空)。

要了解使用的命令及其工作方式,请打开命令提示符窗口,执行以下命令,并完全阅读为每个命令显示的所有帮助页面。

  • echo /?
  • for /?
  • if /?
  • move /?
  • rd /?

另请参阅Single line with multiple commands以获取在命令行中使用两次的&的说明。

© www.soinside.com 2019 - 2024. All rights reserved.