setlocal enabledelayedexpansion
for /f "tokens=*" %%a in ('findstr /n .* a.txt') do (
set str=%%a
set str=!str:*:=!
set str=!str:d=m!
echo.!str!
)
pause
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in ('findstr /n .* a.txt') do (
set str=%%a
set str=!str:*:=! set str=!str:d=m!
echo.!str!
)
pause
红色那句,当str为空的时候出错
@echo off&setlocal enabledelayedexpansion
for /f "tokens=*" %%a in ('findstr /n .* a.txt') do (
set str=%%a
set str=!str:*:=!
if defined str set str=!str:d=m!
echo.!str!
)
pause
Originally posted by lpk130 at 2008-4-27 07:40 PM:
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in ('findstr /n .* a.txt') do (
set str=%%a
set str=!str:*:=! set str=!str:d=m!
echo.!str!
)
pause
...
OK 我明白原因了,
在被替换之前,str的值始终不能为空,空的话就会出现我那种情况了,如果在替换之后再把:及其前的所有字符删除掉的话,就可以了~
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in ('findstr /n .* a.txt') do (
set str=%%a
set str=!str:d=m!
set str=!str:*:=!
echo.!str!
)
pause
就像这样~~ 感谢lpk130!