Qokelate 发表于 2012-1-6 15:08:28

已解决 Au3 写的程序 如何传递包含引号的参数

本帖最后由 Qokelate 于 2012-1-6 17:06 编辑

把下面的代码转为a.exe,如何在CMD带参数调用,并且参数可以包含引号?
if $cmdline<1 then exit

for $i=1 to $cmdline
msgbox(0,0,$i)
Next

exit
比如在CMD下调用a.exe 1 2 3 "aa"a a"aa"
得到的$cmdline是"aa"a a"aa" 或 aa"a a"aa

user3000 发表于 2012-1-6 15:22:34

Dim $param1 = '"aa"a a "aa"', $param2 = 'aa"a a"aa'
Dim $EXEPath = '.\a.exe'
shellexecute($EXEPath, '"1 2 3"' & ' ' & $param1 & ' ' & $param2)

user3000 发表于 2012-1-6 15:24:01

有空格的路径或参数一定要用双引号括起来, 不然不能正常传递给程序

Qokelate 发表于 2012-1-6 15:27:58


user3000 发表于 2012-1-6 15:22 http://www.autoitx.com/images/common/back.gif


    我要的是在CMD下带引号调用   然后程序内部能正确获得调用的参数啊

比如cmd下用命令 a.exe 11 "d:\a b\c c.exe"
A获得的参数1应该是11 参数2是"d:\a b\c c.exe"

afan 发表于 2012-1-6 15:53:40

按自己的需要解析 $CmdLineRaw

Qokelate 发表于 2012-1-6 17:07:24

回复 5# afan


    看来也只有这个方法不会丢字符了,呵呵,谢了

itljl 发表于 2012-1-6 21:05:16

'用引号引住双引号。'

hollandmfq 发表于 2014-5-15 11:31:26

雷锋精神传天下!谢谢分享!
页: [1]
查看完整版本: 已解决 Au3 写的程序 如何传递包含引号的参数