我正在寻找一个批处理脚本,它将每个文件夹的1个随机文件复制到指定的文件夹。
我一直在使用它,它查找mp3并以随机顺序将它们复制到指定的文件夹。我宁愿修改这个脚本,每个文件夹只能获取1个文件,不能再确保不会复制同一个文件夹中的2个文件。
ManageController
任何想法如何修改它可以做我想要的?对不起,我不是很擅长批次。
答案 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