[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

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

  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
复制代码
微信:flashercs
QQ:49908356

TOP

谢谢大佬 完美解决

TOP

给一个纯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

TOP

返回列表