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

[文件操作] 求文件随机分发批处理怎么写?

例如,文件夹A里面有几万个文件,随机把这些文件,每600个移到新建文件夹1,2,3。。。。这些新建文件夹都建在A文件夹的目录里,一定随机抽取移动,不按照文件名,创建时间这些顺序来移动文件,

不知道我说的清楚不,怎么写呢?求教

  1. @echo off
  2. set info=互助互利,支付宝扫码头像,感谢赞助
  3. rem 有问题,可加QQ956535081及时沟通
  4. title %info%
  5. start mshta VBScript:Execute("msgbox(""%info%""):close")
  6. cd /d "%~dp0"
  7. set "数量=600"
  8. powershell ^
  9.     $files=@(dir^|?{($_ -is [System.IO.FileInfo]) -and ($_.Name -ne '%~nx0')});^
  10.     $n=1;$list=get-random -input $files -count $files.length;^
  11.     for($i=0;$i -lt $list.length;$i++){^
  12.         if(-not (test-path -liter $n)){[void](md $n);};^
  13.         write-host ($list[$i].Name+' --^> '+$n);^
  14.         move -liter $list[$i].Name $n;^
  15.         if((($i+1) %% %数量%) -eq 0){$n++;};^
  16.     }
  17. pause
复制代码
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

回复 2# zaqmlp


    非常感谢

TOP

回复 3# qiqing

嗯,那就赞助下吧
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

nim语言版。
  1. import os, random, sequtils
  2. const
  3.     source = """D:\gayhub\test\测试a"""
  4.     target = """D:\gayhub\test\测试b"""
  5.     max = 600
  6. var dirs:seq[string] = @[]
  7. for k,p in walkDir(source):
  8.     if k == pcFile:
  9.         dirs.add(p)
  10. randomize()
  11. shuffle(dirs)
  12. var count = 0
  13. if dirs.len > max:
  14.     if dirs.len mod max > 0:
  15.         count = (dirs.len div max) + 1
  16.     else:
  17.         count = dirs.len div max
  18. else:
  19.     count = 1
  20. var dist = dirs.distribute(count, false)
  21. assert dist.len == count
  22. for i, p in dist:
  23.     var path =  target / $(i+1)
  24.     discard existsOrCreateDir(path)
  25.     for f in p:
  26.         moveFile(f,path/extractFilename(f))
复制代码
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

返回列表