Board logo

标题: [代码合集] 如何用批处理把随机的不同文件复制或者移动到不同文件夹内 [打印本页]

作者: yhq300    时间: 2022-7-27 16:10     标题: 如何用批处理把随机的不同文件复制或者移动到不同文件夹内

各位大佬 有没办法把不同的文件 随机选取 复制或者移动到指定文件夹内所有子文件夹中
比如说我有一个文件夹内部有1000条视频
另外一个文件夹内部有5个不同的子文件夹
从1000个视频的文件夹内部 随机选取100条 5个文件夹每个平均分配20条不重复的视频
这要如何实现?
作者: flashercs    时间: 2022-7-27 19:36

  1. @echo off
  2. cd /d "%~dp0"
  3. powershell -c "$arr=@(get-random -InputObject (gci '视频文件夹\*'|?{-not $_.psiscontainer}) -Count 100);$i=0;foreach($dir in (gci '另外文件夹\*'|?{$_.psiscontainer})){$arr[$i..($i+19)]|copy-item -Destination $dir.fullname -force;$i+=20;}"
  4. pause
复制代码

作者: yhq300    时间: 2022-7-27 23:24

谢谢大佬 完美解决
作者: aloha20200628    时间: 2022-7-28 00:36

给一个纯P版本...代码存盘到视频文件所在目录
@echo off &setlocal enabledelayedexpansion
:: 在当前目录下随机提取100个文件等分复制到5个子目录(d1,...,d5)
set "d1=d:\B\B1" &set "d2=d:\B\B2" &set "d3=d:\B\B3" &set "d4=d:\B\B4" &set "d5=d:\B\B5"
:: 在1~1000之间生成100个随机数
set/a "a=1000,b=100"
(for /L %%n in (1,1,!b!) do (set /a "Rn=1+!random!%%!a!" &echo,!Rn!)>"rnList"
set/a "qn=1,k=1,e=!b!/5"
for /f "delims=" %%F in ('dir/s/b/a-d *.*^|findstr /n ".*"^|findstr /b /g:"rnList" ') do (
    for /f "tokens=1* delims=:" %%1 in ("%%~F") do (set srcF="%%~2")
    if !qn! equ 1 for %%n in (!k!) do (set "tDir=!d%%n!")
    copy /y !srcF! "!tDir!"
    set/a "qn+=1"
    if !qn! gtr !e! (set/a "qn=1,k+=1")
)
del/q "rnList" &endlocal &exit/b




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2