问题一是因为开启了变量延迟,并且有英文感叹号包围的变量!line1!,使得搜索字符串中的单个的^符号被escape变成空了,得换成两个^
问题二换成从行的开始处findstr- @echo off
- setlocal enabledelayedexpansion
-
- echo 请选择要查询的用户:
- echo.
- set /a count=0
- for /f "tokens=1,2 delims==" %%a in ('findstr /n "^" UsersDatabase.txt ^| findstr /i ":UserName="') do (
- set /a count+=1
- for /f "delims=: tokens=1" %%k in ("%%a") do (set "line=%%k"
- set /a line1=!line!+1
- echo !line1!
- for /f "tokens=1,2 delims==" %%x in ('findstr /n "^^" UsersDatabase.txt ^| findstr /ib "!line1!:BeiZhu="') do (
- set "BeiZhu=%%y"
- )
-
- )
- echo !count!. %%b --- !BeiZhu!
- )
- pause
复制代码
|