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

[文本处理] 【已解决】批处理如何随机显示文本中任意一行的任意一列?

[复制链接]
发表于 2017-7-8 23:03:10 | 显示全部楼层 |阅读模式
本帖最后由 taofan712 于 2017-7-9 19:17 编辑

有一个12行的文本,每行共有5列内容。
请问如何先随机显示某一行的某一列,按任意键后再显示该行的全部5列内容。

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2017-7-9 12:05:38 | 显示全部楼层
既然指定了行和列,那么:
  1. @echo off&setlocal enabledelayedexpansion
  2. set /a i=0,j=0
  3. for /f "tokens=1-5 delims= " %%A in (test.txt) do (
  4.         set "s_!j!=%%A %%B %%C %%D %%E"&set /a j+=1
  5.         for %%# in (%%A %%B %%C %%D %%E) do set r_!i!=%%#&set /a i+=1
  6. )
  7. set /a r=!random!%%60,_r=r/5
  8. echo !r_%r%!&pause
  9. echo !s_%_r%!&pause
复制代码

评分

参与人数 2技术 +2 收起 理由
taofan712 + 1 感谢指导
codegay + 1 1

查看全部评分

发表于 2017-7-9 12:20:19 | 显示全部楼层
  1. @echo off
  2. set /a n=%random% %% 12,m=%random% %% 5+1,t=n+1
  3. echo;%t%行 %m%列
  4. for /f "delims=" %%a in ('more +%n% "文本.txt"') do (
  5.     for /f "tokens=%m%" %%b in ("%%a") do echo;%%b
  6.     pause
  7.     echo;%%a
  8.     goto end
  9. )
  10. :end
  11. pause>nul
复制代码

评分

参与人数 3技术 +3 收起 理由
taofan712 + 1 感谢指导
codegay + 1 1
a2002 + 1 也是厉害了

查看全部评分

发表于 2017-7-9 14:09:40 | 显示全部楼层
VBS
  1. Rem Code BY 老刘
  2. Rem 文本换行标记必须为CrLf
  3. [文本内容] = CreateObject("scripting.FilesystemObject").getfile(".\1.txt").OpenAsTextStream.Readall
  4. Randomize : [行] = fix(rnd*12) : [列] = fix(rnd*5)        '由于数组从0开始,所以无需加1,得到0也正常
  5. Msgbox Split(split([文本内容],VbCrlf)([行]))([列])&Vbcrlf&split([文本内容],VbCrlf)([行])
复制代码

评分

参与人数 1技术 +1 收起 理由
taofan712 + 1 感谢指导

查看全部评分

 楼主| 发表于 2017-7-9 19:17:15 | 显示全部楼层
回复 2# a2002
回复 3# qazplm
回复 4# 老刘1号


感谢各位解惑
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 20:02 , Processed in 0.036045 second(s), 15 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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