从每个子文件夹批量复制1随机文件并移动到文件夹

时间:2016-06-07 17:43:12

标签: batch-file cmd

我正在寻找一个批处理脚本,它将每个文件夹的1个随机文件复制到指定的文件夹。

我一直在使用它,它查找mp3并以随机顺序将它们复制到指定的文件夹。我宁愿修改这个脚本,每个文件夹只能获取1个文件,不能再确保不会复制同一个文件夹中的2个文件。

ManageController

任何想法如何修改它可以做我想要的?对不起,我不是很擅长批次。

1 个答案:

答案 0 :(得分:1)

@echo off
setlocal EnableDelayedExpansion
cd \particular\folder
set n=0
for %%f in (*.*) do (
   set /A n+=1
   set "file[!n!]=%%f"
)
set /A "rand=(n*%random%)/32768+1"
copy "!file[%rand%]!" \different\folder

这适用于特定文件夹(已测试)。将其循环为多个文件夹。

更新2。以下代码将从每个子文件夹复制1个随机文件并移至文件夹。 (循环部分)。 经过测试和工作

@echo off
setlocal EnableDelayedExpansion
cd \particular\folder
set t=0
for /d %%i in (*) do (
    cd "%%i"
    set /A t+=1
    set n[!t!]=0
    for %%f in (*.*) do (
       set /A n[!t!]+=1
       set "file[!n!]=%%f"
    )
    set /A "rand=(n[!t!]*%random%)/32768+1"
    copy "!file[%rand%]!" D:\complete\destination
    cd..
)
pause