找回密码
 加入
搜索
查看: 2300|回复: 7

[AU3基础] 已解决 Au3 写的程序 如何传递包含引号的参数

  [复制链接]
发表于 2012-1-6 15:08:28 | 显示全部楼层 |阅读模式
本帖最后由 Qokelate 于 2012-1-6 17:06 编辑

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

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

exit
比如在CMD下调用  a.exe 1 2 3 "aa"a a"aa"
得到的$cmdline[4]是"aa"a a"aa" 或 aa"a a"aa
发表于 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)

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

发表于 2012-1-6 15:24:01 | 显示全部楼层
有空格的路径或参数一定要用双引号括起来, 不然不能正常传递给程序
 楼主| 发表于 2012-1-6 15:27:58 | 显示全部楼层
user3000 发表于 2012-1-6 15:22



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

比如cmd下用命令 a.exe 11 "d:\a b\c c.exe"
A获得的参数1应该是11 参数2是"d:\a b\c c.exe"
发表于 2012-1-6 15:53:40 | 显示全部楼层
按自己的需要解析 $CmdLineRaw
 楼主| 发表于 2012-1-6 17:07:24 | 显示全部楼层
回复 5# afan


    看来也只有这个方法不会丢字符了,呵呵,谢了
发表于 2012-1-6 21:05:16 | 显示全部楼层
'用引号引住双引号。'
发表于 2014-5-15 11:31:26 | 显示全部楼层
雷锋精神传天下!谢谢分享!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-6-26 19:17 , Processed in 0.084549 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表