中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-03 05:16
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]这个批处理怎么写? 查看 839 回复 3
楼 主 [求助]这个批处理怎么写? 发表于 2007-01-19 12:13 ·  中国 河北 保定 联通
初级用户
积分 52
发帖 21
注册 2007-01-19 06:49
19年会员
UID 76993
性别 男
状态 离线
比如D:\下面有一个abc.txt,内容为:

text
abcde
abc123

现在想通过批处理实现以下操作:
1、如果里面没有“abc123”这一行则添加这一行;
2、如果里面有这一行,则将其改为“abc321”
3、删除“text”这一行。

多谢各位了。
2 发表于 2007-01-20 03:57 ·  中国 河北 保定 联通
初级用户
积分 52
发帖 21
注册 2007-01-19 06:49
19年会员
UID 76993
性别 男
状态 离线
高手请赐教啊
3 发表于 2007-01-20 04:26 ·  中国 河北 保定 联通
初级用户
积分 52
发帖 21
注册 2007-01-19 06:49
19年会员
UID 76993
性别 男
状态 离线
这样行不行?
@echo off
type abc.txt|find "abc123" /i /v>>aaa.nnn
copy aaa.nnn abc.txt
echo abc321>>abc.txt
del aaa.nnn
4 发表于 2007-01-20 07:03 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
  也没有过多的测试,试试看吧?

@echo off&setlocal enabledelayedexpansion
copy /y nul new.txt
findstr "abc123" 2.txt >nul || >>new.txt echo=abc123
for /f "delims=" %%i in ('findstr /v "text" 2.txt') do (
set a=%%i
if "!a!"=="abc123" (>>new.txt echo=abc321) else (
>>new.txt echo=!a!)
)
start new.txt&exit/b
论坛跳转: