标题: [文本处理] 【已解决】批处理如何随机显示文本中任意一行的任意一列? [打印本页]
作者: taofan712 时间: 2017-7-8 23:03 标题: 【已解决】批处理如何随机显示文本中任意一行的任意一列?
本帖最后由 taofan712 于 2017-7-9 19:17 编辑
有一个12行的文本,每行共有5列内容。
请问如何先随机显示某一行的某一列,按任意键后再显示该行的全部5列内容。
作者: a2002 时间: 2017-7-9 12:05
既然指定了行和列,那么:- @echo off&setlocal enabledelayedexpansion
- set /a i=0,j=0
- for /f "tokens=1-5 delims= " %%A in (test.txt) do (
- set "s_!j!=%%A %%B %%C %%D %%E"&set /a j+=1
- for %%# in (%%A %%B %%C %%D %%E) do set r_!i!=%%#&set /a i+=1
- )
- set /a r=!random!%%60,_r=r/5
- echo !r_%r%!&pause
- echo !s_%_r%!&pause
复制代码
作者: qazplm 时间: 2017-7-9 12:20
- @echo off
- set /a n=%random% %% 12,m=%random% %% 5+1,t=n+1
- echo;%t%行 %m%列
- for /f "delims=" %%a in ('more +%n% "文本.txt"') do (
- for /f "tokens=%m%" %%b in ("%%a") do echo;%%b
- pause
- echo;%%a
- goto end
- )
- :end
- pause>nul
复制代码
作者: 老刘1号 时间: 2017-7-9 14:09
VBS- Rem Code BY 老刘
- Rem 文本换行标记必须为CrLf
- [文本内容] = CreateObject("scripting.FilesystemObject").getfile(".\1.txt").OpenAsTextStream.Readall
- Randomize : [行] = fix(rnd*12) : [列] = fix(rnd*5) '由于数组从0开始,所以无需加1,得到0也正常
- Msgbox Split(split([文本内容],VbCrlf)([行]))([列])&Vbcrlf&split([文本内容],VbCrlf)([行])
复制代码
作者: taofan712 时间: 2017-7-9 19:17
回复 2# a2002
回复 3# qazplm
回复 4# 老刘1号
感谢各位解惑
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |