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

[文本处理] 批处理如何随机提取文本的一行赋值给变量

[复制链接]
发表于 2016-11-30 18:11:09 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-11-30 20:34 编辑

批处理11.bat  同目录的22.txt。
其中22.txt有内容,都是一行一行的。
批处理11.bat,如何随机取出一行作为变量比如变量str,并显示echo %str%

如果22.txt的文本行数太多,规定10行以内或者20行以内也行。如果好编写就按照txt的行数随机。

评分

参与人数 1PB -30 收起 理由
pcl_test -30 发帖前先使用论坛搜索

查看全部评分

发表于 2016-11-30 23:05:42 | 显示全部楼层
本帖最后由 WHY 于 2016-12-1 08:05 编辑
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (a.txt) do set /a n+=1 & set "_!n!=%%i"
  3. set /a n = %Random% %% n + 1
  4. set "str=!_%n%!" & echo;!str!
  5. pause
复制代码
发表于 2016-11-30 23:12:56 | 显示全部楼层
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f %%i in ('find /v /c "" ^< a.txt') do set /a n = !Random! %% %%i + 1
  3. (for /l %%i in (1 1 %n%) do set /p str=)<a.txt
  4. echo;!str!
  5. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
freesoft00 + 1 +1

查看全部评分

发表于 2016-12-1 11:51:30 | 显示全部楼层
本帖最后由 happy886rr 于 2016-12-1 11:53 编辑

回复 1# freesoft00
推荐用我写的工具,专注行赋值的第三方seti.exe 地址:http://www.bathome.net/thread-42565-1-1.html
演示:
  1. @echo off
  2. title 行赋值演示
  3. mode con cols=60 lines=10
  4. REM 随机一行赋值给变量L
  5. seti L=(line%RANDOM:~-1%)%~f0
  6. REM 显示变量L的值,即被随机的行
  7. echo;%L%
  8. pause>NUL
  9. exit
  10.   
复制代码

评分

参与人数 1技术 +1 收起 理由
freesoft00 + 1 +1

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 14:07 , Processed in 0.011447 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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