找回密码
 加入
搜索
查看: 2396|回复: 9

[AU3基础] [已解决]让输出的exe程序要带参数才能运行

  [复制链接]
发表于 2017-8-1 09:16:02 | 显示全部楼层 |阅读模式
本帖最后由 dngmy 于 2017-8-7 20:33 编辑

比如一个发邮件的程序 mail.exe
如果带参数运行:mail.exe -L 就表示系统登陆执行,程序就会邮件系统被有人登陆了。
如果带参数运行:mail.exe -R 就表示重启执行,程序就会邮件系统被重启了。

当然不带参数,就无法执行

程序里面如果来实现这样的参数呢?
发表于 2017-8-23 08:31:00 | 显示全部楼层
If $CmdLine[0] = 1 Then
        Select
                Case $CmdLine[1] = "1"
                        MsgBox(0, "", "正在完成参数 " & $CmdLine[1] & " 功能", 20)
                Case $CmdLine[1] = "2"
                        MsgBox(0, "", "正在完成参数 " & $CmdLine[1] & " 功能", 20)
                Case $CmdLine[1] = "-p"
                        MsgBox(0, "", "正在完成参数 " & $CmdLine[1] & " 功能", 20)
        EndSelect
        Exit
EndIf

ShellExecute(@ScriptFullPath, "1")
ShellExecute(@ScriptFullPath, "2")
ShellExecute(@ScriptFullPath, "-p")
给你看一个例子吧 是从别人那里复制粘贴的
发表于 2017-8-1 09:33:28 | 显示全部楼层
回复 1# dngmy


    命令行參數
當我們傳遞命令行參數到 AutoIt 腳本中的時候, AutoIt 會初始化一個特殊的數組 $CmdLine :

$CmdLine[0] --- 參數的個數
$CmdLine[1] --- 第一個參數 (在腳本名稱後面)
$CmdLine[2] --- 第二個參數
...
$CmdLine[$CmdLine[0]] --- 某個方法獲取的最後一個參數...



值得注意的是不能將腳本名作為參數類; 要獲取腳本名, 請使用 @ScriptName 代替.

參數中如果含有空格,必須使用 "雙引號"把内容围住. 編譯 腳本同樣也能接受命令行參數.



如果你的腳本是這樣運行的:

    AutoIt3.exe myscript.au3 參數1 "這 是 另一個 參數"

$CmdLine[0] --- 等於 2, 命令行有兩個參數

$CmdLine[1] --- 等於第一個參數: "參數1"

$CmdLine[2] --- 等於第二個參數: "這 是 另一個 參數"

@ScriptName --- 等於腳本名稱: myscript.au3



除 $CmdLine 之外還有一個名為 $CmdLineRaw 的變數, 包含未被拆分的完整命令行.

因此,對於上面的例子:

$CmdLineRaw --- 等於: myscript.au3 參數1 "這 是 另一個 參數"



如果腳本被編譯, 並這樣運行:

    myscript.exe 參數1 "這 是 另一個 參數"

$CmdLineRaw 等於: 參數1 "這 是 另一個 參數"

注意 $CmdLineRaw 會立即返回參數.



注意 : 只有 63 個參數會被 $CmdLine[...] 返回. 但 $CmdLineRaw 總是返回完整的命令行.



AutoIt 的特定命令行開關
格式 1: AutoIt3.exe [/ErrorStdOut] [/AutoIt3ExecuteScript] 文件 [參數 ...]
                執行 AutoIt3 腳本文件


/ErrorStdOut    允許致命錯誤重定向到 StdOut, 可以被 Scite 編輯器捕捉. 此開關可用於編譯的腳本.


要執行一個標準的 AutoIt 腳本文件 'myscript.au3',使用命令:
'AutoIt3.exe myscript.au3'
发表于 2017-8-1 10:25:13 | 显示全部楼层
有例子那,或者有时间自己试一下
 楼主| 发表于 2017-8-1 11:47:54 | 显示全部楼层
好的,谢谢各位,我来试试。
发表于 2017-8-1 14:11:23 | 显示全部楼层
论坛里有很多列子,我好像都问过~
发表于 2017-8-1 16:22:39 | 显示全部楼层
回复 5# heroxianf


    因为你是08年就来的老人家啊。。。俺们是刚来的新人。。
发表于 2017-8-4 19:40:58 | 显示全部楼层
回复 4# dngmy


    如果问题已解决,请修改标题  加上  已解决  字样
发表于 2017-8-7 08:53:59 | 显示全部楼层
加参数这个想法不错,原来au3也可以这样用。厉害了
 楼主| 发表于 2017-8-7 20:33:38 | 显示全部楼层
回复 7# yamakawa


改了,谢谢提醒。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-4-23 23:11 , Processed in 0.078420 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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