标题: [文本处理] 批处理如何随机提取文本的一行赋值给变量 [打印本页]
作者: freesoft00 时间: 2016-11-30 18:11 标题: 批处理如何随机提取文本的一行赋值给变量
本帖最后由 pcl_test 于 2016-11-30 20:34 编辑
批处理11.bat 同目录的22.txt。
其中22.txt有内容,都是一行一行的。
批处理11.bat,如何随机取出一行作为变量比如变量str,并显示echo %str%
如果22.txt的文本行数太多,规定10行以内或者20行以内也行。如果好编写就按照txt的行数随机。
作者: WHY 时间: 2016-11-30 23:05
本帖最后由 WHY 于 2016-12-1 08:05 编辑
- @echo off & setlocal enabledelayedexpansion
- for /f "delims=" %%i in (a.txt) do set /a n+=1 & set "_!n!=%%i"
- set /a n = %Random% %% n + 1
- set "str=!_%n%!" & echo;!str!
- pause
复制代码
作者: WHY 时间: 2016-11-30 23:12
- @echo off & setlocal enabledelayedexpansion
- for /f %%i in ('find /v /c "" ^< a.txt') do set /a n = !Random! %% %%i + 1
- (for /l %%i in (1 1 %n%) do set /p str=)<a.txt
- echo;!str!
- pause
复制代码
作者: happy886rr 时间: 2016-12-1 11:51
本帖最后由 happy886rr 于 2016-12-1 11:53 编辑
回复 1# freesoft00
推荐用我写的工具,专注行赋值的第三方seti.exe 地址:http://www.bathome.net/thread-42565-1-1.html
演示:- @echo off
- title 行赋值演示
- mode con cols=60 lines=10
- REM 随机一行赋值给变量L
- seti L=(line%RANDOM:~-1%)%~f0
- REM 显示变量L的值,即被随机的行
- echo;%L%
- pause>NUL
- exit
-
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |