Board logo

标题: [文本处理] 批处理如何以每次随机读取1-4行的方式读完一个文本? [打印本页]

作者: qie2015    时间: 2015-11-27 21:54     标题: 批处理如何以每次随机读取1-4行的方式读完一个文本?

  1. for /f "usebackq delims=*" %%i in (NewColsing.txt) do (
  2.     >>D:\sss.txt echo,%%i
  3. echo,%%i
  4. pause
  5. )
复制代码
如上,为逐步读取,如何改为随机1-4行的读取这个文本,不落的读完。大神请赐教
作者: pcl_test    时间: 2015-11-27 22:18

说到随机,一定要说明能不能重复
作者: qie2015    时间: 2015-11-27 22:27

回复 2# pcl_test


    是啊,依次不落的,没有重复的读完。 怎么破?大师
作者: pcl_test    时间: 2015-11-27 23:12

本帖最后由 pcl_test 于 2015-11-28 20:46 编辑

回复 3# qie2015
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in ('type "文本.txt"') do set/a n+=1&set #!random!a!random:~-2!=%%a
  4. set t=0
  5. :0
  6. set/a r=!random!%%4+1
  7. echo;读取%r%行--------------------------
  8. call :loop %t% %r%
  9. set/a t+=%r%
  10. if %t% lss %n% goto :0
  11. pause&exit/b
  12. :loop
  13. set s=0
  14. for /f "tokens=1* delims==" %%a in ('set #^|more +%1') do (
  15.     set/a s+=1
  16.     echo;%%b
  17.     if !s! equ %2 goto :eof
  18. )
  19. goto :eof
复制代码

作者: qie2015    时间: 2015-11-27 23:20

回复 4# pcl_test


    原来这么高级啊。 这么多代码。好难懂
作者: qie2015    时间: 2015-11-27 23:24

回复 4# pcl_test


    大师,好像有个小问题,读完了还在读
作者: pcl_test    时间: 2015-11-27 23:29

回复 6# qie2015

截图看看
作者: qie2015    时间: 2015-11-27 23:36

回复 7# pcl_test


    for /f "delims=:" %%a in ('findstr/n ".*" "1.txt"') do (set ns=%%a)

if %t% lss !ns! goto :0
加了第一行可以了
作者: qie2015    时间: 2015-11-27 23:43

回复 7# pcl_test


    可以每行被读取后面加间隔10秒吗?
作者: pcl_test    时间: 2015-11-27 23:48

回复 9# qie2015


    不明觉厉
作者: qie2015    时间: 2015-11-27 23:54

回复 10# pcl_test


    如:随机3行
echo,第一行
timeout /t 10
echo,第二行
timeout /t 10
echo,第三行
timeout /t 10
作者: pcl_test    时间: 2015-11-27 23:56

回复 11# qie2015


    你都编出来了,还问我
作者: qie2015    时间: 2015-11-28 00:00

回复 12# pcl_test


    哦哦,知道了, 你这代码太帅了
作者: pcl_test    时间: 2015-11-28 00:15

回复 13# qie2015

渣渣而已




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2