问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

BAT转换成EXE为什么某些代码会失效

发布网友 发布时间:2022-05-12 19:46

我来回答

1个回答

热心网友 时间:2023-10-20 04:39

原BAT文件不能出现下列情况。不然会失效
1、每行只能执行一个命令,就是说不允许有"|"( 管道),
2、除了echo 或者 dir之外,其他情况不允许再有转向命令(>,>>)
如:type a.txt | find "abc" -->非法(不能有|)
再如:find "abc' a.txt >b.txt --->非法(不能有>)
再再如:外部命令dspt.exe 0 /l >d.txt --->非法(不能有>)
再再再如: for %%i in (%a%) do echo %%i >>c.txt ->非法(不能有>,>>)
再再再再如:if %a%==1 if %b%==2 set c=3 -->非法(不能连续执行)

3、call 命令不会返回参数
举例如下:
set a=123
call b.bat ------>b.bat中的命令为:set a=abc
echo %a%
对于bat方式,执行上述命令后,echo 的结果是:abc
这是我们最常用的bat命令调用,也就是说,bat传送变量。

但是,对于编译后的BAT文件,它执行的结果是:123 ------》 没错,还是123 !!
真的没错,这不是Bug,这是标准的com、exe执行方式,
其实,这个应该很好理解,这与一个exe程序不能直接向另一个exe程序传递参数一样。
例如,如果你的bat中用到wbat.com,其中有个w.bat,若编译后,w.bat所传递的参数将无效。

如果你知道什么是全局变量、局部变量,那你该一点就通,如果还不了解,可以看看有关方面的书,也可做以下试验:
执行以下命令,你就会明白:
set a=123
echo %a% ------->结果是:123,没错
command /k
set a=abc
echo %a% ------->显示:abc,也没错
exit
echo %a% -------》结果是什么,是123或是abc? 自己做吧
就是全局变量与局部变量的简单显示,当然,如果你的bat根本就没有call命令,那你是不会在意的。

极个别第三方软件在BAT编译后,运行不正常,人无完人,别太苛求,试验后确定吧,实在不行就Call。

4、BAT编译软件有两个严重的bug,必须避开它:
a、变量名,如bat中有:
set a=1
set ab=2
set abc=3
这三条命令在bat中执行正确,但编译软件会认为是一样的,会出错,这是一个BUG,只要避开它就可了:即变量名不要有完全重合。

b、echo set a=c:>a.txt
echo dir %%a%%>>a.txt
这两条命令在bat中执行正确,但在BAT编译后会在"c:"及%a%后面多出几个空格,
set a=c:变成了set a=c: ,会出现错误,这也是一个BUG,普通的文本输出没有问题,如有必要,也要避开它。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
离婚后多久买房贷款 离婚多久能贷款买房 办离婚多久能贷款买房 离婚后再贷款买房能吗 ...问卦卜个婚期。 请问哪位有好的推荐~万分感谢 华硕K40ABCPU的和显卡正常温度是多少? 惠普k40ab 玩单击游戏卡 机器慢 显卡温度高 我华硕K40AB新机玩过《使命召唤》后,用驱动人生测CPu温度达72度正常吗... 小松鼠壁挂炉故障处理大全 小松鼠壁挂炉过热故障维修原因分析与解决方案 有没有把bat转为exe的程序?脱离cmd.exe使用! 将BAT加密成EXE文件 请问怎样将exe程序,vbe文件还有bat文件打包成一个exe程序 有什么剪辑视频的免费软件。 求推荐剪辑处理视频的软件 ...没有声音,按音量加就说电视音量固定,这是怎么回事啊,要怎么解决... 急求一个不用注册的视频剪辑软件 三星液晶电视突然就没有声音怎么办?? CSS中能够将对象从文档流中抽出的定位方式是: absolute relative static fixed 关于夜晚的伤心的句子 怎样重命名DVD驱动器 改不了驱动器名字(非一般) WOW安装的驱动器名是什么? 怎么才可以改CD驱动器名啊 如何更改光驱驱动器号 驱动器名称 win7如何更改驱动器名 如何查询全国计算机等级证书一级合格证书 如何在在线手机文档中指定区域让别人填 一部老片 大力神去找消失的村民,中间还有九头蛇,结尾打牛头怪,请问是什么电影? 杭州和苏州那个属于东部城市 苏杭指的是什么地方? 张思捷是钟丽缇和谁生的 考拉爸爸是谁,为嘛不要她了 有了解考拉爸爸的朋友吗? 钟丽缇女儿考拉的父亲是谁 考拉张伦硕关系好吗 钟丽缇女儿考拉的亲生父亲不是张伦硕吗 考拉是谁的孩子 张伦硕是考拉亲生爸爸吗 考拉是什么动画片 怎样的吸奶器比较好用? 钟丽缇想为张伦硕生一个儿子,是不是只有亲生的孩子才会跟自己一条心? KeepSprint是什么意思 浪潮NF180 raid1怎么做 浪潮raid卡驱动安装 浪潮服务器的问题,现有3块硬盘做的raid5,再加2块硬盘组RAID0,可以么? 浪潮磁盘阵列级联线能带电拔插吗 怎么把图片做成背景啊? 什么是中央空调BTS系统? S1200BTSR 支持I3 2100吗? BSC跟BTS什么意思分别是什么关系