中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-13 22:33
47,812 主题排行 / 349,916 发帖 / 今日 0 篇 / 48,268 会员排行
DOS批处理 & 脚本技术(批处理室) » [已结]setlocal EnableDelayedExpansion 与 "!"
可打印版本  10,006 / 25
第16楼 kcdsw 发表于 2006-06-19 13:26
中级用户 发帖 179 积分 404
拜托 再帮我看看吧
第17楼 willsort 发表于 2006-06-19 18:58
元老会员 发帖 1,512 积分 4,432
Re kcdsw:

抱歉!你的问题我很快就注意到了,但是遗憾的是,当时和后来我做了许多的测试,结果证明使用for+echo的方法复制和编辑文本存在很多问题,尤其是对类似cover.ps这类含有相当多特殊字符的文件。

于是我准备改弦更张,使用其它的方法编辑文本。

第一个想到的方法是edlin,因为它是NT系列自带的命令行方式的文本编辑器,结果费了一番工夫之后,发现edlin不能处理超长的文件,文件只加载到530多行便结束了。

于是,所余的路径便只有第三方脚本工具了。考虑到只是替换一些简单的文本,所以选择了sed,其脚本编写起来并不繁琐。使用GNU sed 3.02测试了以下代码,结果是正确且高效的。



[ Last edited by willsort on 2006-6-20 at 10:31 ]
第18楼 kcdsw 发表于 2006-06-20 10:15
中级用户 发帖 179 积分 404


那这样写的话是不是只是替换了原先的730 730 ?
如果是这样,那我第一行的for 是不是可以不要了?
只需要提取出象素大小,然后计算出所需的新数据 然后替换?


能否提供你所说的sed的版本下载?

[ Last edited by kcdsw on 2006-6-20 at 10:29 ]
第19楼 willsort 发表于 2006-06-20 10:30
元老会员 发帖 1,512 积分 4,432
Re kcdsw:

没错,是这样的。

原代码中第一个for语句,是在考虑for+echo和edlin方案时使用的,改用sed方案后因其不影响结果输出,而忽略了将其删除。类似的语句还有setlocal。

现已将原代码进行了修改。

sed下载链接请参考,请注意使用GNU sed 4.0.7会过滤掉文本行中的回车符(0x0D),生成Unix格式文本。GNU sed 3.02 则没有这个问题。

GNU utilities for Win32
http://unxutils.sourceforge.net/

[ Last edited by willsort on 2006-6-20 at 10:39 ]
第20楼 kcdsw 发表于 2006-06-20 11:33
中级用户 发帖 179 积分 404
呵呵 谢谢版主

先前我很固执的要用批处理,可能是我的心理在做怪
总是觉得外来的程序大多没中文注解,也不是自己写的,也不放心,难学难懂
今天一用 感觉不错
第21楼 kcdsw 发表于 2006-06-20 11:37
中级用户 发帖 179 积分 404
用 QuickBFC 编译了一下

编译的时候把sed捆绑进去了

因为编译后的exe在运行的时候首先需要把原先的bat文件释放出来,位置是%temp%
我想 它释放捆绑文件的路径大概也是这里,或者是exe所在的文件夹
这样 exe会自动把cover.ps的路径传递给bat 和 sed ,那我就是更省心了,省的sed和bat不在一起.省的我告诉它cover.ps的路径,省了N多事情哇!!!

在此 再次感谢版主和各位关注我帖子的兄弟!!

受小弟一拜!!
第22楼 jianyaogao 发表于 2007-03-17 23:34
初级用户 发帖 22 积分 49
好难不懂
第23楼 hegu 发表于 2007-05-13 12:31
新手上路 发帖 2 积分 4
好多高手!!!!!!倾慕中....
第24楼 kgdetg1127 发表于 2007-10-12 22:23
初级用户 发帖 89 积分 158
牛BI。顶上去。
第25楼 zhouyongjun 发表于 2008-10-31 13:54
新手上路 发帖 3 积分 4
稀里糊涂的,下下来看下。
第26楼 wujianlin555 发表于 2008-11-20 23:00
新手上路 发帖 1 积分 1
下来看看
上一页  1 2
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023