我在.jpg
这样的文件夹中有成千上万的.\[date]\jpg
,例如:
.\2018_03_01\jpg
.\2018_03_02\jpg
...等等。
我需要向后移动一步,即
.\2018_03_01\jpg\*.jpg
...至
.\2018_03_01\*.jpg
...等等。
所有这些日期命名的文件夹都不包含这些场合应该处理的jpg
子文件夹。
我想这可以用XCopy
或传统的.bat
批量完成,但是如何?
命令XCOPY用于复制文件和整个目录,而不用于移动文件。
解决方案是在命令提示符窗口中使用FOR循环。不需要批处理文件。
在包含子目录2018_03_01
和2018_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以获取在命令行中使用两次的&
的说明。