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

回复 1# 盛世繁华
抛砖引玉。代码另存为ANSI编码,假设每次复制2个文件到文件夹中,Groups=2。未测试:
  1. @echo off
  2. set Groups=2
  3. setlocal enabledelayedexpansion
  4. for /f "delims=" %%i in ('dir /b /a-d^|findstr /e "jpg jpeg png bmp"') do (
  5.     set /a n+=1
  6.     set _!n!=%%i
  7. )
  8. set m=0
  9. for /d %%i in (*) do (
  10.     for /l %%j in (1,1,%Groups%) do (
  11.         set /a m+=1
  12.         for %%k in (_!m!) do copy "!%%k!" "%%i\"
  13.         if !m! equ !n! set m=0
  14.     )
  15. )
  16. pause
复制代码
1

评分人数

TOP

回复 3# 盛世繁华
第4行for循环少了in,已修改。
1

评分人数

TOP

本帖最后由 qixiaobin0715 于 2023-3-23 10:14 编辑

回复 6# 盛世繁华
那就不是修改的问题,是要推倒重来的:
  1. @echo off
  2. set Groups=2
  3. for /d %%i in (*) do (
  4.     setlocal enabledelayedexpansion
  5.     for /f "delims=" %%j in ('dir /b /a-d^|findstr /e "jpg jpeg png bmp"') do (
  6.         set /a n+=1
  7.         set _!random!_!n!=%%j
  8.     )
  9.     set /a n-=%Groups%
  10.     for /f "tokens=1* delims==" %%k in ('set _^|more +!n!') do (
  11.         copy "%%l" "%%i\"
  12.     )
  13.     endlocal
  14. )
  15. pause
复制代码
估计你也不是实际需求,而是心血来潮。如果是的话,以后这种事还是自己来思考解决的好。
代码未经测试。
1

评分人数

TOP

回复 8# 盛世繁华
我也是在这里学习的,代码不收取任何费用,有问题可以在论坛里问,或许别人也能帮到你。上面代码已修改,看看行不。
1

评分人数

TOP

返回列表