![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-09 22:47 |
共 47,811 主题排行 / 349,897 发帖 / 今日 2 篇 / 48,255 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 出题:整理文本 (新手老鸟都来试试) |
| 可打印版本 6,473 / 54 |
| 第31楼 HAT | 发表于 2008-07-14 16:27 |
| 版主 发帖 5,017 积分 9,023 | |
| 第32楼 26933062 | 发表于 2008-07-14 17:21 |
| 银牌会员 发帖 879 积分 2,268 | |
|
31 楼思路也是先把a.txt拼接成一行,再替换。
测试同样不行,刚下了个change 试了试, 问一个问题: 在change 中怎么表示不包括某字符的行? |
|
| 第33楼 qzwqzw | 发表于 2008-07-14 17:34 |
| 银牌会员 发帖 636 积分 2,343 | |
|
看样子没什么问题嘛,如何不行?
change不是sed 没有那么多的正则标记 至于不包含指定字符的行 是有一个/v的开关 类似find [ Last edited by qzwqzw on 2008-7-14 at 05:41 PM ] |
|
| 第34楼 qzwqzw | 发表于 2008-07-14 17:39 |
| 银牌会员 发帖 636 积分 2,343 | |
|
哦,明白了
你没有注意到change是for dos的程序吗? 在win32 console cmd下运行要先初始化中文环境的 chcp 437>nul & graftabl 936>nul |
|
| 第35楼 26933062 | 发表于 2008-07-14 17:44 |
| 银牌会员 发帖 879 积分 2,268 | |
Originally posted by qzwqzw at 2008-7-14 17:39: 确实是这个问题,谢谢! 不过我还是想问一下 在change 中怎么表示不包括某字符的行? 我的思路是 先将所有句号都替换成回车、再删除所有不包含句号的行的回车 |
|
| 第36楼 26933062 | 发表于 2008-07-14 17:59 |
| 银牌会员 发帖 879 积分 2,268 | |
|
哪里有 change。exe 的教程吗? 帮助信息是英文的我一个都看懂啊!。。。
|
|
| 第37楼 HAT | 发表于 2008-07-14 18:04 |
| 版主 发帖 5,017 积分 9,023 | |
|
我这里有一部分中文帮助,不全。
CHANGE.EXE 是一个以命令行方式处理对文件的修改工具,目标文件可以是任意大小任意格式。可以一次执行30条命令!非常地高效。 |
|
| 第38楼 HAT | 发表于 2008-07-14 18:05 |
| 版主 发帖 5,017 积分 9,023 | |
|
//不过我还是想问一下 在change 中怎么表示不包括某字符的行?
/V says to find those items that do NOT match the specification; |
|
| 第39楼 26933062 | 发表于 2008-07-14 18:14 |
| 银牌会员 发帖 879 积分 2,268 | |
|
谢谢我得到的中文帮助信息也是这些,讲的太少了。
我的本意是将包含句号的行的回车替换为yyy加回车,但是怎么没有句号的行末尾也加上了yyy ??? |
|
| 第40楼 qzwqzw | 发表于 2008-07-14 19:10 |
| 银牌会员 发帖 636 积分 2,343 | |
|
确实是这个问题,谢谢!
不过我还是想问一下 在change 中怎么表示不包括某字符的行? 我的思路是 先将所有句号都替换成回车、再删除所有不包含句号的行的回车 -------------------- 真是较真的厉害 既然已经有了合适的方案 何必要舍易求难? change有两种工作模式 一种是binary(block)模式 也就是我提到全文文本替换 按块读取字节然后进行替换 对0d0a视同普通字节 另一种是text(record)模式 也就是我说过的行缓冲模式 按行读取文本然后进行替换 对0d0a会作特殊处理 而如果/from /to /in中使用&H十六进制表示的字符 则直接进入binary模式 而/in开关则需要text模式的支持 所以你的替换操作是无效的 下面的命令是个示例 change \test\a.txt /n\test\b.txt /from "文件" /to "file" /in not "File" |
|
| 第41楼 26933062 | 发表于 2008-07-14 19:17 |
| 银牌会员 发帖 879 积分 2,268 | |
|
多谢多谢,又有不少收获。。。。 ^_^
|
|
| 第42楼 HAT | 发表于 2008-07-14 19:34 |
| 版主 发帖 5,017 积分 9,023 | |
|
qzwqzw 的讲解真是详细啊^_^
|
|
| 第43楼 26933062 | 发表于 2008-07-14 23:25 |
| 银牌会员 发帖 879 积分 2,268 | |
|
真是郁闷,qzwqzw 兄的示列代码我这么运行不了?
我测试代码如下: xp sp2 : 对这段代码的理解为: 运行test模式、即按行读取。不产生临时文件,新文件在c.txt 中, 替换不含句号的行中的“一”为 “ yyy ” 怎么就是运行不了呢? |
|
| 第44楼 qzwqzw | 发表于 2008-07-15 00:16 |
| 银牌会员 发帖 636 积分 2,343 | |
|
晕!
test是我自己的示例文本文件的相对路径 并非模式 /n后不要跟空格 |
|
| 第45楼 26933062 | 发表于 2008-07-15 13:34 |
| 银牌会员 发帖 879 积分 2,268 | |
|
看来它是定要欺负我了,我也这样测试过,还是不行
[ Last edited by 26933062 on 2008-7-15 at 01:35 PM ] |
|
| 上一页 1 2 3 4 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |