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

[文本处理] [已解决]求救 如何用批处理在一个文本里随机提取一行文字并显示出来

[复制链接]
发表于 2013-2-24 23:58:00 | 显示全部楼层 |阅读模式
本帖最后由 yaose 于 2013-3-12 10:10 编辑

求救 如何用批处理在一个文本里随机提取一行文字并显示出来 (如果文本里含有空格,希望显示来是一行文字 不是空白)

评分

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

查看全部评分

发表于 2013-2-25 01:46:27 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in (a.txt) do (
  4.    set /a n+=1
  5.    set ar[!n!]=%%a
  6. )
  7. set /a r=!random!%%n+1
  8. echo !ar[%r%]!
  9. pause
复制代码
 楼主| 发表于 2013-2-25 23:25:12 | 显示全部楼层
谢谢 非常合服要求    以后可以随时添加文字进去 
发表于 2013-2-26 13:04:32 | 显示全部楼层
回复 3# yaose


    问题解决后,请编辑顶楼帖子在标题前面注明[已解决],并给回答者加分。
 楼主| 发表于 2013-2-28 21:16:54 | 显示全部楼层
回复 2# group


    %random% 用这个随机函数 但这个随机1到99时前面有0的 在文本取值会失败的 如001 088 048  069 008 这样的随机数 请问怎么可以去掉前面的0呢 变为1 88 48 69 8
发表于 2013-3-1 00:26:07 | 显示全部楼层
文本要是固定3位可以这样
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in (a.txt) do (
  4.    set /a n+=1
  5.    set /a ar[!n!]=1%%a-1000
  6. )
  7. set /a r=!random!%%n+1
  8. echo !ar[%r%]!
  9. pause
复制代码
如果文本不存在为0的行可以这样
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=* delims=0" %%a in (a.txt) do (
  4.    set /a n+=1
  5.    set ar[!n!]=%%a
  6. )
  7. set /a r=!random!%%n+1
  8. echo !ar[%r%]!
  9. pause
复制代码
不然可以这样,最通用了
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in (a.txt) do (
  4.    set /a n+=1
  5.    set ar[!n!]=0
  6.    for /f "tokens=* delims=0" %%b in ("%%a") do set ar[!n!]=%%b
  7. )
  8. set /a r=!random!%%n+1
  9. echo !ar[%r%]!
  10. pause
复制代码
 楼主| 发表于 2013-3-8 10:41:30 | 显示全部楼层
回复 6# group


    还有 在指定范围数字里机选  数字   例如  1到1200  从中 随机选数  批处理 怎么做
发表于 2013-3-8 15:33:14 | 显示全部楼层
回复 7# yaose


    举个例子:
  1. set /a 随机数=%random% %% 1200 +1
  2. echo %随机数%
  3. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
yaose + 1 谢谢 我没有分了 只能说谢谢

查看全部评分

 楼主| 发表于 2013-3-12 10:11:14 | 显示全部楼层
谢谢 大家的帮助
 楼主| 发表于 2013-3-14 09:43:31 | 显示全部楼层
谢谢
 楼主| 发表于 2013-3-18 07:19:14 | 显示全部楼层
回复 8# CrLf


    那么 如何 在指定的范围数里机选 120-1200
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 03:13 , Processed in 0.015848 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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