中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-13 19:09
楼 主 帮忙改下 这个批处理 发表于 2008-07-05 21:26 ·  中国 北京 联通互联网数据中心
中级用户
★★
积分 206
发帖 93
注册 2007-08-16 17:19
UID 95263
性别 男
状态 离线
原:
type nul>"tmp.txt"
for /f "delims=:" %%a in ('findstr /n ".*\[..*\]" c:\a\a.txt') do set .%%a=a
for /f "tokens=1* delims=:" %%a in ('findstr /n .* c:\a\a.txt'') do (
if defined .%%a (
>>"tmp.txt" echo.
)
for /f "tokens=*" %%i in ("%%b") do (
>>"tmp.txt" echo.%%i
)
)



c:\a 目录下还有很多 .txt 文件 想把这个 c:\a\a.txt 变成 c:\a\*.txt

不能要 tmp.txt 这个文件了 而是直接修改源文件 不知道可以实现不?
2 发表于 2008-07-05 22:34 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
UID 89899
性别 男
状态 离线
不管是Windows还是Unix,都没有哪个命令可以无误地直接修改源文件。
3 发表于 2008-07-06 01:21 ·  中国 广东 江门 联通
初级用户
积分 42
发帖 13
注册 2007-08-03 23:26
UID 94610
性别 男
状态 离线
sed -i -e "s/$/\r/;s/\(.*\[..*\]\)/\r\n\1/" c:\a\a.txt
4 发表于 2008-07-06 10:15 ·  中国 辽宁 营口 中移铁通
中级用户
★★
积分 206
发帖 93
注册 2007-08-16 17:19
UID 95263
性别 男
状态 离线
Originally posted by ywwywwjm at 2008-7-6 01:21 AM:
sed -i -e "s/$/\r/;s/\(.*\\)/\r\n\1/" c:\a\a.txt




c:\a\a.txt 这个可以改成 c:\a\*.txt ???
5 发表于 2008-07-06 10:19 ·  中国 辽宁 营口 中移铁通
中级用户
★★
积分 206
发帖 93
注册 2007-08-16 17:19
UID 95263
性别 男
状态 离线
sed -i -e "s/$/\r/;s/\(.*\[..*\]\)/\r\n\1/" c:\a\a.txt 这个好像没什么作用


hat -i 参数可以修改源文件
6 发表于 2008-07-06 10:20 ·  中国 辽宁 营口 中移铁通
中级用户
★★
积分 206
发帖 93
注册 2007-08-16 17:19
UID 95263
性别 男
状态 离线
如果那个批处理 用sed 实现也可以

如果可以实现 在用个for 命令 应该就可以实现批量修改了
7 发表于 2008-07-06 10:34 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
UID 89899
性别 男
状态 离线
你能否确定sed -i是否使用了临时文件来实现呢?就像change.exe一样
你能否确定sed -i以后,原文件的格式没有改变呢?
8 发表于 2008-07-06 13:18 ·  中国 辽宁 营口 中移铁通
中级用户
★★
积分 206
发帖 93
注册 2007-08-16 17:19
UID 95263
性别 男
状态 离线
Originally posted by HAT at 2008-7-6 10:34 AM:
你能否确定sed -i是否使用了临时文件来实现呢?就像change.exe一样
你能否确定sed -i以后,原文件的格式没有改变呢?



先不说这个问题


能不能 实现 用sed 代替 上面那个批处理
论坛跳转: