我希望有人可以帮我整理批处理文件。
我有超过800个目录的文件夹,每个目录下有一个photo.png和子directoryA其中包含3子目录,我需要将照片从每个目录移动2子目录下,成子directory1中
我对编程/脚本知之甚少,大声笑,我想这将是一种for循环,以递归方式浏览每个目录并找到photo.png的每个实例,然后将每个实例移动到子目录中
例如
> ─Parent > ├─────directory1 > │ ├──sub-directoryA > │ ├──sub-directory1 <──────────│ > │ ├──sub-directory2 │ > │ ├──sub-directory3 │ > │ photo.png <────────move this into here──│ > ├─────directory2 > │ ├──sub-directoryA > │ ├──sub-directory1 <──────────│ > │ ├──sub-directory2 │ > │ ├──sub-directory3 │ > │ photo.png <────────move this into here──│ > ├─────directory800 > │ ├──sub-directoryA > │ ├──sub-directory1 > │ ├──sub-directory2 > │ ├──sub-directory3 > │ photo.png
好吧,所以在四处搜寻之后,我终于找到了一个解决方案,如果有人想要做同样的事情,我将在此处发布该解决方案以供将来参考。我将发布完整的脚本,然后是每个部分的功能细分。只需将此批处理文件放在您正在使用的目录中,它将扫描其下的目录并移动照片,只需更改照片或目录的名称,甚至可以更改文件扩展名并在视频,文本周围移动文件等:)
请记住,对于CMD窗口,请使用单个%;对于批处理文件,请使用2%
for /f "tokens=*" %%a in ('dir /b /A:D "*"')
do (
if not exist "%%a\sub-directoryA"
md "%%a\sub-directoryA\sub-directory1"
Echo >-------------------------------------------------------------------<
if exist "%%a\photo.jpg" echo %%a photo.jpg found.
if exist "%%a\photo.jpg" move "%%a\photo.jpg" "%%a\sub-directoryA\sub-directory1\" >NUL
if exist "%%a\*.jpg" echo %%a *.jpg found.
if exist "%%a\*.jpg" move "%%a\*.jpg" "%%a\sub-directoryA\sub-directory1\" >NUL
Echo:
)
Echo >-------------------------------------------------------------------<
timeout /t 5 >NUL
。
for /f "tokens=*" %%a in ('dir /b /A:D "*"')
:for / f对一组文件执行循环命令
“ tokens = *”导致所有项目都被处理
%% a是命令行参数,仅为找到的每个项目创建一个参数
('dir /b /A:D "*"')
/ B-裸格式(无标题,文件大小或摘要)
/ A:D-在这种情况下,它是一个文件夹的文件属性
“ *” -仅表示所有文件夹
do (
if not exist "%%a\sub-directoryA" md "%%a\sub-directoryA\sub-directory1"
:检查是否存在一个名为sub-directoryA的文件夹,如果不是,则创建该文件夹以及sub-directory1
if exist "%%a\photo.jpg" echo %%a photo.jpg found.
if exist "%%a\photo.jpg" move "%%a\photo.jpg" "%%a\aa\artwork\" >NUL
只是检查所有文件,如果找到了名为ECHO的文件,则ECHO在屏幕上显示该消息,然后将其移动到指定的文件夹
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句