找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 21004|回复: 3

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

[复制链接]
发表于 2022-7-27 16:10:30 | 显示全部楼层 |阅读模式
各位大佬 有没办法把不同的文件 随机选取 复制或者移动到指定文件夹内所有子文件夹中
比如说我有一个文件夹内部有1000条视频
另外一个文件夹内部有5个不同的子文件夹
从1000个视频的文件夹内部 随机选取100条 5个文件夹每个平均分配20条不重复的视频
这要如何实现?
发表于 2022-7-27 19:36:30 | 显示全部楼层
  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
复制代码
 楼主| 发表于 2022-7-27 23:24:24 | 显示全部楼层
谢谢大佬 完美解决
发表于 2022-7-28 00:36:49 | 显示全部楼层
给一个纯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
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 18:34 , Processed in 0.017894 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表