标题: [文件操作] 【已解决】批处理随机运行B.TXT的某行命令,空行不算 [打印本页]
作者: 447219071 时间: 2023-7-16 10:43 标题: 【已解决】批处理随机运行B.TXT的某行命令,空行不算
- start "" a.bat
-
- start "" b.bat
-
- start "" c.bat
- ::空行很多
复制代码
如题,随机读取某行代码我们论坛里有解决方案了,但是没考虑到如有空行就懵了
大大的天才们解决一下吧,网上空行解决代码还真是少
作者: 77七 时间: 2023-7-16 11:10
论坛内的随机读取文本内的一行,一般都是忽略空行的,你用了哪个代码,读取了一个空行?
作者: 447219071 时间: 2023-7-16 11:13
回复 2# 77七 - @echo off
- cd /d "文本所在路径\"
- for /f "delims=: tokens=2" %%a in ('find /c /v "" a.txt') do set n=%%a
-
- set /a m=%random% %% n
-
- if %m%==0 (set skip=) else set skip=skip=%m%
- for /f "%skip% delims=" %%a in (a.txt) do set "str=%%a" & goto end
-
- :end
- echo "%str%"
- pause
复制代码
作者: 77七 时间: 2023-7-16 11:25
回复 3# 447219071
试试这个 http://www.bathome.net/redirect.php?goto=findpost&ptid=42560&pid=193917
作者: 77七 时间: 2023-7-16 12:06
本帖最后由 77七 于 2023-7-16 12:10 编辑
回复 3# 447219071
修改一下,兼容末尾大量空行,随机性可能也高一点- @echo off
- cd /d "文本所在路径\"
- for /f "useback delims=" %%a in ("a.txt") do set /a n+=1
-
- set /a m=%random% %% n
-
- if %m%==0 (set skip=) else set skip=skip=%m%
- for /f "%skip% delims=" %%a in ('findstr . "a.txt"') do set "str=%%a" & goto end
-
- :end
- echo "%str%"
- pause
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |