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

[文件操作] 【已解决】批处理随机运行B.TXT的某行命令,空行不算

[复制链接]
发表于 2023-7-16 10:43:21 | 显示全部楼层 |阅读模式
  1. start "" a.bat

  2. start "" b.bat

  3. start "" c.bat
  4. ::空行很多
复制代码
如题,随机读取某行代码我们论坛里有解决方案了,但是没考虑到如有空行就懵了
大大的天才们解决一下吧,网上空行解决代码还真是少

评分

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

查看全部评分

发表于 2023-7-16 11:10:22 | 显示全部楼层
论坛内的随机读取文本内的一行,一般都是忽略空行的,你用了哪个代码,读取了一个空行?
 楼主| 发表于 2023-7-16 11:13:47 | 显示全部楼层
回复 2# 77七
  1. @echo off
  2. cd /d "文本所在路径"
  3. for /f "delims=: tokens=2" %%a in ('find /c /v "" a.txt') do set n=%%a

  4. set /a m=%random% %% n

  5. if %m%==0 (set skip=) else set skip=skip=%m%
  6. for /f "%skip% delims=" %%a in (a.txt) do set "str=%%a" & goto end

  7. :end
  8. echo "%str%"
  9. pause
复制代码
发表于 2023-7-16 11:25:57 | 显示全部楼层
发表于 2023-7-16 12:06:57 | 显示全部楼层
本帖最后由 77七 于 2023-7-16 12:10 编辑

回复 3# 447219071


   修改一下,兼容末尾大量空行,随机性可能也高一点
  1. @echo off
  2. cd /d "文本所在路径"
  3. for /f "useback delims=" %%a in ("a.txt") do set /a n+=1

  4. set /a m=%random% %% n

  5. if %m%==0 (set skip=) else set skip=skip=%m%
  6. for /f "%skip% delims=" %%a in ('findstr . "a.txt"') do set "str=%%a" & goto end

  7. :end
  8. echo "%str%"
  9. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
447219071 + 1 辛苦了,谢谢

查看全部评分

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

本版积分规则

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

GMT+8, 2026-3-18 15:39 , Processed in 0.020187 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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