中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » [已解决]纯DOS下如何删除变量后空格及strings 问题??
作者:
标题: [已解决]纯DOS下如何删除变量后空格及strings 问题?? 上一主题 | 下一主题
goli2008
中级用户





积分 252
发帖 97
注册 2006-9-17
状态 离线
『楼 主』:  [已解决]纯DOS下如何删除变量后空格及strings 问题??

近日玩个纯DOS启动,发现dos下的bat2com或bat2exe有个通病,
用echo abc >a.txt生成的文件,若直接运行BAT,则生成的txt文件正常,若转换为COM或BAT后,生成的TXT文件每行后都有10个空格!!!!!

因在纯DOS下,不知如何将其后的空格去掉??

后来,用strings 对文本一行行地分析处理,可以去掉部分空格,但是有个无法解决的问题,就是“逗号”,若变量中有逗号,则打乱strings的判断,因strings逗号作分隔符:
例:strings  a=right 变量,2---变量中的逗号与这个外部逗号冲突!!!!!

求助内容:1、谁有去掉变量后面或前面空格的方法或软件?(纯DOS)
2、谁知道strings如何处理内部变量逗号的问题?
3、谁有更好的纯DOS的BAT2exe软件??

等高手来,我找了好久了,没找到办法,先谢谢了!

[ Last edited by goli2008 on 2008-12-2 at 11:13 ]

2008-11-28 22:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 2 楼』:  

这样呢?
>a.txt echo abc




2008-11-29 13:55
查看资料  发短消息 网志   编辑帖子  回复  引用回复
goli2008
中级用户





积分 252
发帖 97
注册 2006-9-17
状态 离线
『第 3 楼』:  

楼上的方法在BAT中可行,转为COM后出错,不认识的命令。
已自己完美解决,稍后再分享重要经验

[ Last edited by qwe123456 on 2008-11-30 at 17:42 ]

2008-11-30 17:35
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
alchemist
高级用户




积分 652
发帖 193
注册 2005-9-25
状态 离线
『第 4 楼』:  

每个BAT转EXE或COM软件都有自己的BUG,我这里有几年前为练习打字的机房编的一个近10KB的BAT.当时发现用任何一个转化软件都无法完美运行



ディスケット  オペレーティン  グシステム
2008-11-30 18:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
goli2008
中级用户





积分 252
发帖 97
注册 2006-9-17
状态 离线
『第 5 楼』:  



  Quote:
Originally posted by alchemist at 2008-11-30 18:11:
每个BAT转EXE或COM软件都有自己的BUG,我这里有几年前为练习打字的机房编的一个近10KB的BAT.当时发现用任何一个转化软件都无法完美运行

等会我再告诉你,你的观点100%错误是!

2008-11-30 19:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
DOSforever
金牌会员





积分 4639
发帖 2239
注册 2005-1-30
状态 离线
『第 6 楼』:  

虽然我从不做这种转换,不知道正确与否,但从你自己的

  Quote:
楼上的方法在BAT中可行,转为COM后出错,不认识的命令。

这句话中似乎证明了

  Quote:
等会我再告诉你,你的观点100%错误是!

不是100%错误的。



DOS倒下了,但永远不死
DOS NEVER DIES !

投票调查:
http://www.cn-dos.net/forum/viewthread.php?tid=46187

本人尚未解决的疑难问题:
http://www.cn-dos.net/forum/viewthread.php?tid=15135
http://www.cn-dos.net/forum/viewthread.php?tid=47663
http://www.cn-dos.net/forum/viewthread.php?tid=48747
2008-11-30 19:30
查看资料  发短消息 网志   编辑帖子  回复  引用回复
goli2008
中级用户





积分 252
发帖 97
注册 2006-9-17
状态 离线
『第 7 楼』:  



  Quote:
Originally posted by DOSforever at 2008-11-30 19:30:
虽然我从不做这种转换,不知道正确与否,但从你自己的

这句话中似乎证明了

不是100%错误的。

不好意思,打错了

2008-11-30 19:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
goli2008
中级用户





积分 252
发帖 97
注册 2006-9-17
状态 离线
『第 8 楼』:  

经过N回测试,自己找到解决办法:
1、bat2com 确实对ECHO生成的文件文本后面多10个空格,(我用的是bat2com V1.5),如果对生成的文本对空格很敏感,如set a=c:与set a=c:               是完全不同的,
用strings的write命令,可以完善代替echo,而且对于>|等echo不认的符号,解决的非常好,如:
strings write a.bat,strings vhao=char 62
strings write a.bat, test txt %%vhao%%b.txt
a.bat
其中Vhao为>,可以任意定义为|等,
运行a.bat即可得b.txt

2、strings /p?可以代替“,”,以前没发现,非常简单。

3、bat2com能保证100%的转换为COM,运行正确,具体方法,稍后另说。

2008-11-30 19:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
goli2008
中级用户





积分 252
发帖 97
注册 2006-9-17
状态 离线
『第 9 楼』:  

http://www.cn-dos.net/forum/viewthread.php?tid=44843&fpage=1

2008-12-2 11:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: