用 cmd /c 代替 call 以避免空变量被处理为空...但仍无法预知程序运行时对变量的动态影响:- @echo off&setlocal enabledelayedexpansion
- (for /f "delims="eol^= %%a in ('findstr /n . %1') do (
- set str=
- set /p str=
- for /f "delims="eol^= %%b in ('echo ^"!str:"=""!"') do (
- setlocal disabledelayedexpansion
- echo:%%~b>$
- endlocal&set str=
- set /p str=<$
- )
- set "str=!str:""="!"
- echo:!str!
- for /f "tokens=1*" %%b in ("!str!") do (
- if /i %%b==set call set %%c
- )
- ))<%1
- del $>nul
- pause
复制代码
|