[已解决]让输出的exe程序要带参数才能运行
本帖最后由 dngmy 于 2017-8-7 20:33 编辑比如一个发邮件的程序 mail.exe
如果带参数运行:mail.exe -L 就表示系统登陆执行,程序就会邮件系统被有人登陆了。
如果带参数运行:mail.exe -R 就表示重启执行,程序就会邮件系统被重启了。
当然不带参数,就无法执行
程序里面如果来实现这样的参数呢? If $CmdLine = 1 Then
Select
Case $CmdLine = "1"
MsgBox(0, "", "正在完成参数 " & $CmdLine & " 功能", 20)
Case $CmdLine = "2"
MsgBox(0, "", "正在完成参数 " & $CmdLine & " 功能", 20)
Case $CmdLine = "-p"
MsgBox(0, "", "正在完成参数 " & $CmdLine & " 功能", 20)
EndSelect
Exit
EndIf
ShellExecute(@ScriptFullPath, "1")
ShellExecute(@ScriptFullPath, "2")
ShellExecute(@ScriptFullPath, "-p")给你看一个例子吧 是从别人那里复制粘贴的 回复 1# dngmy
命令行參數
當我們傳遞命令行參數到 AutoIt 腳本中的時候, AutoIt 會初始化一個特殊的數組 $CmdLine :
$CmdLine --- 參數的個數
$CmdLine --- 第一個參數 (在腳本名稱後面)
$CmdLine --- 第二個參數
...
$CmdLine[$CmdLine] --- 某個方法獲取的最後一個參數...
值得注意的是不能將腳本名作為參數類; 要獲取腳本名, 請使用 @ScriptName 代替.
參數中如果含有空格,必須使用 "雙引號"把内容围住. 編譯 腳本同樣也能接受命令行參數.
如果你的腳本是這樣運行的:
AutoIt3.exe myscript.au3 參數1 "這 是 另一個 參數"
$CmdLine --- 等於 2, 命令行有兩個參數
$CmdLine --- 等於第一個參數: "參數1"
$CmdLine --- 等於第二個參數: "這 是 另一個 參數"
@ScriptName --- 等於腳本名稱: myscript.au3
除 $CmdLine 之外還有一個名為 $CmdLineRaw 的變數, 包含未被拆分的完整命令行.
因此,對於上面的例子:
$CmdLineRaw --- 等於: myscript.au3 參數1 "這 是 另一個 參數"
如果腳本被編譯, 並這樣運行:
myscript.exe 參數1 "這 是 另一個 參數"
$CmdLineRaw 等於: 參數1 "這 是 另一個 參數"
注意 $CmdLineRaw 會立即返回參數.
注意 : 只有 63 個參數會被 $CmdLine[...] 返回. 但 $CmdLineRaw 總是返回完整的命令行.
AutoIt 的特定命令行開關
格式 1: AutoIt3.exe 文件 [參數 ...]
執行 AutoIt3 腳本文件
/ErrorStdOut 允許致命錯誤重定向到 StdOut, 可以被 Scite 編輯器捕捉. 此開關可用於編譯的腳本.
要執行一個標準的 AutoIt 腳本文件 'myscript.au3',使用命令:
'AutoIt3.exe myscript.au3' 有例子那,或者有时间自己试一下 好的,谢谢各位,我来试试。 论坛里有很多列子,我好像都问过~{:face (239):} 回复 5# heroxianf
{:face (356):}因为你是08年就来的老人家啊。。。俺们是刚来的新人。。 回复 4# dngmy
如果问题已解决,请修改标题加上已解决字样 加参数这个想法不错,原来au3也可以这样用。厉害了 回复 7# yamakawa
改了,谢谢提醒。
页:
[1]