Windows 批量创建子文件夹并将父映像文件复制到新的子文件夹

Windows 批量创建子文件夹并将父映像文件复制到新的子文件夹,windows,batch-file,Windows,Batch File,我有大约6000个文件夹,其中包含图像,每个文件夹有不同数量的图像,其中一些文件夹也有0个图像。 现在,我需要在每个文件夹中创建2个子文件夹,将这些新子文件夹命名为“medium”和“thumbs”,并在这些子文件夹中复制父文件夹中的图像。示例:假设我有一个名为1000的文件夹,其中包含10个图像,分别命名为1.jpg、2.jpg、3.jpg等,直到10.jpg。我需要在名为1000的文件夹中创建一个名为“medium”的文件夹和一个名为“thumbs”的文件夹,并将文件夹1000中的图像复制到

我有大约6000个文件夹,其中包含图像,每个文件夹有不同数量的图像,其中一些文件夹也有0个图像。 现在,我需要在每个文件夹中创建2个子文件夹,将这些新子文件夹命名为“medium”和“thumbs”,并在这些子文件夹中复制父文件夹中的图像。示例:假设我有一个名为1000的文件夹,其中包含10个图像,分别命名为1.jpg、2.jpg、3.jpg等,直到10.jpg。我需要在名为1000的文件夹中创建一个名为“medium”的文件夹和一个名为“thumbs”的文件夹,并将文件夹1000中的图像复制到新的子文件夹“1000/medium”和“1000/thumbs”中。我需要用6000个文件夹来完成这项工作。有人能帮我创建一个批处理例程来完成这项工作吗

我正在尝试编写这样的代码:

for /r "c:\folders" %%a in (.) do ( pushd %%a -iname '*.jpg' -execdir \ bash -c 'mkdir -p thumbs medium; mv *.jpg medium; cp -t thumbs medium/*' \; ) popd )
尝试使用find-execdir执行此操作


好的。。。根据您的一个示例,您希望有一个Windows批处理文件。你把它和bash-Linux搞混了

不管怎么说,这是一个很好的选择。但是,您需要它的/D开关来枚举目录/R只是告诉for也在子目录中搜索项目,但在您的情况下,这不是必需的,因为您有一个平面目录结构,所有感兴趣的目录都直接位于C:\folders\中

以下代码应满足您的要求:

for /D %%D in ("C:\folders\*.*") do (
    pushd "%%~D"
    mkdir "medium"
    mkdir "thumbs"
    copy "*.jpg" "medium\"
    copy "*.jpg" "thumbs\"
    popd
)

如果要删除原始文件,请用move替换第二个copy命令。

您好,非常感谢。我想问以下问题,我有大约6000个文件夹,您编写的代码是否可以打开位于特定文件夹内的6000个文件夹中的每一个,并在每个文件夹下创建介质和拇指?还是应该按文件夹运行此文件夹?非常感谢。假设我在路径c:/folders下有6000个文件夹,我应该按以下方式使用脚本吗?查找c:/folders-iname'*.jpg'-execdir\bash-c'mkdir-p thumbs medium;mv*.jpg介质;cp-t拇指中等/*'\;另外,我试图理解FOR命令,也许我应该在脚本中添加类似的内容,以便在每个子文件夹中运行该命令?你怎么认为?对于*.DO@ECHO%D中的/D%D,这不是代码;请注意,这是完全不同的…嗯,我需要一个批处理文件代码,DOS代码。。不是linux代码。
for /D %%D in ("C:\folders\*.*") do (
    pushd "%%~D"
    mkdir "medium"
    mkdir "thumbs"
    copy "*.jpg" "medium\"
    copy "*.jpg" "thumbs\"
    popd
)