创建一个批处理文件以将照片从多个目录移动到该目录拥有的子目录中

奥哈拉汉

我希望有人可以帮我整理批处理文件。

我有超过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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

需要一个批处理文件来在子目录中创建和命名m3us

输入多个目录,输入子目录,然后使用bash将所有文件移至一个目录

使用%USERPROFILE%将文件移动到批处理中的另一个目录?

如何按类型将文件从一个目录及其子目录递归移动到另一个目录?

将多个文件移动到Linux中的子目录

将所有文件和目录移动到Windows中的新子目录

DOS批处理命令将上一个子目录中的所有文件向上移动一级

如何将子目录中的所有文件递归移动到单个目录?

将子目录中的文件移动到另一个目录

将所有具有相同名称的文件从子目录移动到一个目录中

Windows 7批处理文件循环访问子目录,选择第一个文件

如何将所有文件(不包括子目录)从一个目录移动到另一个目录?

将目录中的所有文件移动到同一目录中的新子目录

将文件从多个目录移动到一个目录

如何将文件从一个子目录移动到第一个子目录之外的另一个子目录?

在多个现有目录中创建一个新的子目录

如何在批处理文件中引用子目录,该子目录的路径取决于用户帐户?

将所有子子目录的内容仅移动到其子目录中

将.txt文件移动到子目录中

如何将子目录移动到同一目录中的另一个子目录中?

AWK-创建新的子目录并根据文件名将文件移动到该子目录中

根据第一个字符将目录移动到子目录中

WinRAR批处理文件,用于将每个文件夹中的第一个子目录压缩为一个zip文件

有没有一种优雅的方式将当前目录中的所有子目录移动到一个新的子目录?

批处理文件将某些文件类型从某些子目录复制到一个文件夹

将多个 .jpg 从一个目录移动到子目录中的子目录

如何将具有特定扩展名的文件从子目录移动到另一个目录,包括使用 CMD 创建文件所在的子目录?

根据 Python 中的名称将文件从特定子目录移动到另一个子目录

将具有特定扩展名的文件从目录移动到 PHP 中的子目录