标题: 修改文本中的特定行,其他行原样不修改,怎么写?
[打印本页]
作者: chenai79921
时间: 2007-12-1 19:31
标题: 修改文本中的特定行,其他行原样不修改,怎么写?
作者: chenai79921
时间: 2007-12-1 19:32
就是把0 修改 成1,,,1修改成0,,
不想用echo,文件很长还有其他的内容。
作者: chenai79921
时间: 2007-12-1 21:56
自问自答了
@echo off
for /f "tokens=1,2 delims==" %%a in (11.txt) do (
if "%%a"=="cis" (set /p=%%a=<nul&set /a p=1&call set /p"=%%p%%"<nul&echo.)
if "%%a"=="cit" (set /p=%%a=<nul&set /a p=0&call set /p"=%%p%%"<nul&echo.)
)>> result.txt
move result.txt 11.txt
那个ccc怎么弄啊??谁来帮帮我啊。。。if 里面好像不能有else的!!
Last edited by chenai79921 on 2007-12-1 at 09:58 PM ]
作者: chenai79921
时间: 2007-12-1 21:57
其他有许多的文件名。。其他的保持原样怎么写,,
作者: HAT
时间: 2007-12-2 01:41
//那个ccc怎么弄啊??谁来帮帮我啊。。。if 里面好像不能有else的!!
加括号就行了
if %a% equ %b% (
echo yes
) else (
echo no
)
作者: chenai79921
时间: 2007-12-2 10:41
不行啊,,if else 好像只能在IF exist filename -- 的时候用,,,
IF string1==string2 -- 用不了else,,,,,,,
现在就算能用else 也解决不了问题.......
作者: zh159
时间: 2007-12-2 11:07
到底是cti、css,还是cis、cit???
if string1==string2 (command1) else (command2)
如果只按原帖说的1变0,0变1:
@echo off
for /f "tokens=1,2 delims==" %%a in (11.txt) do (
if "%%a" == "ccc" (
>>temp.txt echo.%%a=%%b
) else (
set/a str=%%b^^1
>>temp.txt call echo.%%a=%%str%%
)
)
exit
作者: terse
时间: 2007-12-2 17:14
@echo off
for /f "tokens=1* delims=:" %%a in ('findstr /n .* "11.txt"') do (
set list=%%b
setlocal enabledelayedexpansion
if "!list: =!"=="cti=0" set list=cti=1
if "!list: =!"=="css=1" set list=css=0
echo/!list! >>result.txt
endlocal
)
move /y "result.txt" "11.txt " 2>NUL
pause
作者: chenai79921
时间: 2007-12-3 19:09
谢谢terse zh159 和HAT ,,
terse 的代码是我想要的,,谢谢!!
我想学学BAT 有啥好的教程吗?网上pdf或者书?
Last edited by chenai79921 on 2007-12-3 at 07:52 PM ]