[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

本帖最后由 pcl_test 于 2016-11-30 20:34 编辑

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

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

评分人数

    • pcl_test: 发帖前先使用论坛搜索PB -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

评分人数

TOP

  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

评分人数

TOP

本帖最后由 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
复制代码

TOP

返回列表