|
|
发表于 2023-11-3 08:04:01
|
显示全部楼层
问题一是因为开启了变量延迟,并且有英文感叹号包围的变量!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
复制代码 |
评分
-
查看全部评分
|