3742668 兄10F的代码仍然不能正确处理行首为分号的情况,也不能正确处理行内带感叹号的情况。
代码1能正确处理行首为分号或冒号,行上带&、||等特殊字符的文本,但是不能正确提取带感叹号的内容,代码2能解决感叹号的问题,但是需要用引号括起来,基本上解决了我在9F提出的问题,请各位测试:
代码1:
@echo off
set num=0
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('findstr /n .* test.txt') do (
set /a num+=1
set "str=%%i"
echo 第 !num! 行: !str:*:=!
)
pause
代码2:
@echo off
set num=0
::setlocal enabledelayedexpansion
for /f "delims=" %%i in ('findstr /n .* test.txt') do (
set /a num+=1
set "str=%%i"
call :display
)
pause
goto :eof
:display
echo 第 %num% 行: "%str:*:=%"
goto :eof
test.txt的内容:
:abc
::xy
;
;;;ef &
;:;
::;;
||
&
^
!<
!
%
"
""
'
[
Last edited by namejm on 2006-12-11 at 10:13 PM ]
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。