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

[文本处理] [分享]批处理查询帮助

本帖最后由 Src 于 2023-5-27 09:46 编辑

参照了好多Bathome的代码
  1. @ echo off
  2. setlocal enabledelayedexpansion
  3. cd /d "%~dp0"
  4. title Lhsude 计算器问题报告
  5. if not exist %Cd%\Buglist.rid (
  6.   echo 系统文件损毁,请重新安装
  7.   pause>nul&exit
  8. )
  9. set n=%1
  10. if not defined n (
  11.   echo 参数未定义
  12.   pause>nul&exit
  13. )
  14. set "return=Fail"
  15. for /f "delims=:" %%i in ('type "Buglist.rid" ^| findstr /n /l /c:"%n%"') do (
  16.     set "return=%%i"
  17. )
  18. if "%return%"=="Fail" echo 故障&goto :eof
  19. set line=%return%
  20. echo,参见手册%line%行:
  21. set "SrcFile=%Cd%\Buglist.rid"
  22. REM 获取第几行
  23. set "DstRow=%line%"
  24. for /f "tokens=1* delims=:" %%i in ('findstr /n .* "%SrcFile%"') do (
  25.     set /a "CurRow+=1"
  26.     if !CurRow! equ %DstRow% (
  27.         echo,%%j
  28.         goto :End
  29.     )
  30. )
  31. :End
  32. goto :eof
复制代码
同目录下Read.bat
  1. @echo off&SetLocal ENABLEDELAYEDEXPANSION
  2. if "%1"=="" (goto --help) else (set file=%~s1)
  3. if "%2"=="" (set first="delims=: tokens=1*") else (set first="skip=%2 delims=: tokens=1*")
  4. if "%3"=="" (
  5.         for /f %first% %%a in ('findstr /n .* %file%') do echo/%%b
  6.         goto :EOF
  7. )
  8. set last=%3
  9. set loop=0
  10. for /f %first% %%a in ('findstr/n .* %file%') do (
  11.         if not defined lxmxn (echo/%%b&set /a loop+=1) else (goto :EOF)
  12.         if "!loop!"=="%last%" set lxmxn=Nothing
  13. )
  14. GOTO :EOF
  15. :--help
  16. echo/======================================
  17. echo/本程序段需要带参数才能正常运行
  18. echo/&echo/Usage:&echo/Call ReadLine ^<文件名^> ^<跳过行数^> ^<读取行数^>
  19. echo/&echo/例如:call ReadLine aa.txt 5 7 ,将跳过aa.txt文件的前5行,读取下面的7行字符
  20. echo/&echo/如果^<跳过行数^>没有指定,就从文件第一行读取
  21. echo/&echo/指定^<读取行数^>时必须指定^<跳过行^>
  22. echo/======================================
  23. goto :eof
复制代码
Buglist.rid
  1. [Data]
  2. 1:请检查目录名称是否合法,文件是否存在,文件名是否被更改。
  3. 2:目录为空。
  4. 3:这是第三个
  5. =End of textdata=
复制代码

返回列表