Batch file 批处理文件,将复制的文件重命名为原始文件夹名称和内容

Batch file 批处理文件,将复制的文件重命名为原始文件夹名称和内容,batch-file,Batch File,使用以下方法将随机图像文件从一个包含1000多个子文件夹的文件夹复制到另一个文件夹中(这非常有效): 现在,我希望将新文件夹中复制的每个文件重命名为其来源的子文件夹,并在名称中列出该子文件夹中图像文件和视频文件的数量 类似这样:“子文件夹名(250+10).jpg” 250=原始子文件夹中的图像文件 10=原始子文件夹中的视频文件 这甚至可以成批实现吗?答案是肯定的,尽管我认为如果不是绝对必要的话,在文件名中同时使用空格和括号是愚蠢的。@Compo我很乐意使用您建议的任何其他形式 @echo

使用以下方法将随机图像文件从一个包含1000多个子文件夹的文件夹复制到另一个文件夹中(这非常有效):

现在,我希望将新文件夹中复制的每个文件重命名为其来源的子文件夹,并在名称中列出该子文件夹中图像文件和视频文件的数量

类似这样:“子文件夹名(250+10).jpg”

  • 250=原始子文件夹中的图像文件

  • 10=原始子文件夹中的视频文件


这甚至可以成批实现吗?

答案是肯定的,尽管我认为如果不是绝对必要的话,在文件名中同时使用空格和括号是愚蠢的。@Compo我很乐意使用您建议的任何其他形式
@echo off
setlocal EnableDelayedExpansion
cd E:\"New folder"
set t=0
for /d %%i in (*) do (
    cd "%%i"
    set /A t+=1
    set n[!t!]=0
    for %%f in (*.jpeg *.jpg *.gif *.bmp *.png) do (
       set /A n[!t!]+=1
       set "file[!n!]=%%f"
    )
    set /A "rand=(n[!t!]*%random%)/32768+1"
    copy "!file[%rand%]!" E:\samples\"New folder"
    cd..
)
pause