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

[文本处理] 批处理如何不断随机取n个txt文本另存?

我有一个文件夹中有几千个数据采样的txt,我想随机不断的提取40个txt文本另存为一个文件夹,随机提取的文本可部分重复,但不能完全重复,毎个另存的文件夹名可按数字顺序排列,麻烦大家了,谢谢!

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. :loop
  4. set /a folder+=1
  5. md folder
  6. for /f "delims=" %%i in ('dir /b *.txt') do (
  7.     set /a n+=1
  8.     set "#!n!=%%~fi"
  9. )
  10. for /l %%i in (1 1 40) do (
  11.     set /a num=!random!%%n+1
  12.     for %%j in (!num!) do copy "!#%%j!" ".\!folder!"
  13. )
  14. ping -n 5 localhost>nul
  15. rem 大概延时5s
  16. rem 如果系统为win7以上可以用 timeout /t 5代替之
  17. goto loop
复制代码

TOP

bailong360 你好!
   我的系统是win7-64,运行过程只产生了一个folder空文件夹,然后就是数字顺序的文件,并且提示文件夹或子文件存在,麻烦你看一下,谢谢!

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. dir /b /s *.txt>$
  3. for /f "tokens=2 delims=:" %%a in ('find /c /v "" $') do set/al=%%a
  4. :loop
  5. set/an+=1
  6. set str=
  7. title copy number !n!
  8. md !n! 2>nul
  9. for /l %%a in (1,1,40) do (
  10.      set/a s=!random!%%l+1
  11.      set "str=!str!!s!: "
  12. )
  13. for /f "tokens=1* delims=:" %%a in ('findstr /n . $^|findstr /b "!str!"') do copy "%%b" ".\!n!"
  14. ping -n 5 localhost>nul
  15. goto loop
复制代码
初学BAT,非专业。代码不适当之处还望前辈们多多指点。在此表示感谢!

TOP

返回列表