标题: [文本处理] [已解决]求救 如何用批处理在一个文本里随机提取一行文字并显示出来 [打印本页]
作者: yaose 时间: 2013-2-24 23:58 标题: [已解决]求救 如何用批处理在一个文本里随机提取一行文字并显示出来
本帖最后由 yaose 于 2013-3-12 10:10 编辑
求救 如何用批处理在一个文本里随机提取一行文字并显示出来 (如果文本里含有空格,希望显示来是一行文字 不是空白)
作者: group 时间: 2013-2-25 01:46
- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%a in (a.txt) do (
- set /a n+=1
- set ar[!n!]=%%a
- )
- set /a r=!random!%%n+1
- echo !ar[%r%]!
- pause
复制代码
作者: yaose 时间: 2013-2-25 23:25
谢谢 非常合服要求 以后可以随时添加文字进去
作者: BAT-VBS 时间: 2013-2-26 13:04
回复 3# yaose
问题解决后,请编辑顶楼帖子在标题前面注明[已解决],并给回答者加分。
作者: yaose 时间: 2013-2-28 21:16
回复 2# group
%random% 用这个随机函数 但这个随机1到99时前面有0的 在文本取值会失败的 如001 088 048 069 008 这样的随机数 请问怎么可以去掉前面的0呢 变为1 88 48 69 8
作者: group 时间: 2013-3-1 00:26
文本要是固定3位可以这样- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%a in (a.txt) do (
- set /a n+=1
- set /a ar[!n!]=1%%a-1000
- )
- set /a r=!random!%%n+1
- echo !ar[%r%]!
- pause
复制代码
如果文本不存在为0的行可以这样- @echo off
- setlocal enabledelayedexpansion
- for /f "tokens=* delims=0" %%a in (a.txt) do (
- set /a n+=1
- set ar[!n!]=%%a
- )
- set /a r=!random!%%n+1
- echo !ar[%r%]!
- pause
复制代码
不然可以这样,最通用了- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%a in (a.txt) do (
- set /a n+=1
- set ar[!n!]=0
- for /f "tokens=* delims=0" %%b in ("%%a") do set ar[!n!]=%%b
- )
- set /a r=!random!%%n+1
- echo !ar[%r%]!
- pause
复制代码
作者: yaose 时间: 2013-3-8 10:41
回复 6# group
还有 在指定范围数字里机选 数字 例如 1到1200 从中 随机选数 批处理 怎么做
作者: CrLf 时间: 2013-3-8 15:33
回复 7# yaose
举个例子:- set /a 随机数=%random% %% 1200 +1
- echo %随机数%
- pause
复制代码
作者: yaose 时间: 2013-3-12 10:11
谢谢 大家的帮助
作者: yaose 时间: 2013-3-14 09:43
谢谢
作者: yaose 时间: 2013-3-18 07:19
回复 8# CrLf
那么 如何 在指定的范围数里机选 120-1200
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |