![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-06 17:52 |
共 48,039 主题排行 / 350,124 发帖 / 今日 0 篇 / 48,252 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 修改文本中的特定行,其他行原样不修改,怎么写? |
| 可打印版本 1,137 / 8 |
| 第1楼 chenai79921 | 发表于 2007-12-01 19:31 |
| 初级用户 发帖 48 积分 120 | |
|
修改文本中的特定行,其他行原样不修改,怎么写? ─────────────────── 版务记录 ──────────────────── 执行:lxmxn 标题:求助,请大家帮我,我也想学习下。 说明:因标题表述过于模糊,不便于论坛的搜索和管理,请在三日内修改标题,否则扣除2点积分 参考:http://www.cn-dos.net/forum/viewthread.php?tid=7326&fpage=1 http://www.cn-dos.net/forum/viewthread.php?tid=1415 ─────────────────── 版务记录 ──────────────────── 现有文件 11.txt内容如下 ccc=2 cti=0 css=1 我想修改成这个样子,(如下) ccc=2 cti=1 css=0 我想直接修改11.txt,不要把修改完的内容,导入到一个新建的文本文件中,请问如何写批处理命令。 谢谢。。。。 [ Last edited by chenai79921 on 2007-12-2 at 10:45 AM ] |
|
| 第2楼 chenai79921 | 发表于 2007-12-01 19:32 |
| 初级用户 发帖 48 积分 120 | |
|
就是把0 修改 成1,,,1修改成0,,
不想用echo,文件很长还有其他的内容。 |
|
| 第3楼 chenai79921 | 发表于 2007-12-01 21:56 |
| 初级用户 发帖 48 积分 120 | |
|
自问自答了
@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 ] |
|
| 第4楼 chenai79921 | 发表于 2007-12-01 21:57 |
| 初级用户 发帖 48 积分 120 | |
|
其他有许多的文件名。。其他的保持原样怎么写,,
|
|
| 第5楼 HAT | 发表于 2007-12-02 01:41 |
| 版主 发帖 5,017 积分 9,023 | |
|
//那个ccc怎么弄啊??谁来帮帮我啊。。。if 里面好像不能有else的!!
加括号就行了 if %a% equ %b% ( echo yes ) else ( echo no ) |
|
| 第6楼 chenai79921 | 发表于 2007-12-02 10:41 |
| 初级用户 发帖 48 积分 120 | |
|
不行啊,,if else 好像只能在IF exist filename -- 的时候用,,,
IF string1==string2 -- 用不了else,,,,,,, 现在就算能用else 也解决不了问题....... |
|
| 第7楼 zh159 | 发表于 2007-12-02 11:07 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
到底是cti、css,还是cis、cit???
if string1==string2 (command1) else (command2) 如果只按原帖说的1变0,0变1: |
|
| 第8楼 terse | 发表于 2007-12-02 17:14 |
| 银牌会员 发帖 946 积分 2,404 | |
|
@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 |
|
| 第9楼 chenai79921 | 发表于 2007-12-03 19:09 |
| 初级用户 发帖 48 积分 120 | |
|
谢谢terse zh159 和HAT ,,
terse 的代码是我想要的,,谢谢!! 我想学学BAT 有啥好的教程吗?网上pdf或者书? [ Last edited by chenai79921 on 2007-12-3 at 07:52 PM ] |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |