[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
问题一是因为开启了变量延迟,并且有英文感叹号包围的变量!line1!,使得搜索字符串中的单个的^符号被escape变成空了,得换成两个^
问题二换成从行的开始处findstr
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. echo 请选择要查询的用户:
  4. echo.
  5. set /a count=0
  6. for /f "tokens=1,2 delims==" %%a in ('findstr /n "^" UsersDatabase.txt ^| findstr /i ":UserName="') do (
  7.     set /a count+=1
  8.         for /f "delims=: tokens=1" %%k in ("%%a") do (set "line=%%k"
  9.             set /a line1=!line!+1
  10.                    echo !line1!
  11.                 for /f "tokens=1,2 delims==" %%x in ('findstr /n "^^" UsersDatabase.txt ^| findstr /ib "!line1!:BeiZhu="') do (
  12.                     set "BeiZhu=%%y"
  13.     )
  14.   )
  15.        echo !count!. %%b --- !BeiZhu!
  16. )
  17. pause
复制代码
1

评分人数

    • thp2008: 原来是这么回事,感谢您的解释,学习了。技术 + 1

TOP

返回列表