如何 运行 一个 AutoIt 脚本并从中调用一个函数?

How to run an AutoIt script and call a function from it?

CONVERTER.au3 使用 dwebp 将 webp 转换为 png:

Convert()

Func Convert()
    $hSearch = FileFindFirstFile(@ScriptDir & "\*.webp")
    $sFileName = FileFindNextFile($hSearch)
    $Split = StringSplit($sFileName, ".")

    ;~ MsgBox(0,'',$Split[1])

    Run("dwebp.exe " & $sFilename & " -o " & $Split[1] & ".png")
EndFunc

Func Troubleshoot()
    Convert()
    Local $hSearch
    If $hSearch = -1 Then
        $desktopCON = "supported"
    Else
        $desktopCON = "unsupported"
    EndIf
    FileClose($hSearch)
    Exit
EndFunc

我需要 运行 CONVERTER.au3 并从中调用特定函数。我试过了,但似乎不起作用:

Run("D:\SCRIPT\NEW\CONVERTER.au3 Call(Convert)")

Parameters$CmdLine 数组引用。第一个元素($CmdLine[0]为参数个数,$CmdLine[1]为第一个参数等)。

If $CmdLine[0] = 0 Then  ; standard behavour for no params
    Convert()
    Exit
EndIf

If $CmdLine[1] = "convert" Then ; param is "convert"
    Convert()
    Exit
EndIf

If $CmdLine[1] = "troubleshoot" Then ; param is "troubleshoot"
    Troubleshoot()
    Exit
EndIf

MsgBox(0, "ERRROR", "undefined function: " & $CmdLine[1])

Func Convert()
    MsgBox(0, "", "your converting code here")
EndFunc   ;==>Convert

Func Troubleshoot()
    MsgBox(0, "", "your troubleshooting code here")
EndFunc   ;==>Troubleshoot

使用 Run('"Converter.au3" foobar')
从 AutoIt 执行它 或者从 Windows 命令行仅使用 converter.au3 troubleshoot

如果没有给出参数,它会执行一个默认函数(或者任何你想要它做的)。