我想在AutoIt的自动化代码中为文件上传编写Eclipse脚本。我要将文件保存到Project/resources/my_file.txt
。
我已将FileUpload.au3编写为:
WinWait("File Upload","",10)
ControlFocus("File Upload","","Edit1")
Sleep(2000)
ControlSetText("File Upload" , "", "Edit1", "resources/my_file.txt")
Sleep(2000)
ControlClick("File Upload" , "","Button1");
如果我编译上面的文件并创建FileUpload.exe并在我的代码中调用FileUpload.exe,则问题在于上传文件的路径,因为系统会因系统而异。
如何获取resources / my_file.txt的绝对路径并在运行时在我的AutoIt脚本中使用它?
答案 0 :(得分:2)
使用传入AutoIt脚本的命令行参数初始化特殊数组$ CmdLine。请注意,scriptname不被归类为参数;使用@ScriptName获取此信息。包含空格的参数必须用“双引号”括起来。编译脚本以相同的方式接受命令行参数。
$ CmdLine [0]是参数个数 $ CmdLine [1]是参数1(在脚本名称之后) $ CmdLine [2]是参数2等 ... $ CmdLine [$ CmdLine [0]]是获取最后一个参数的一种方法......
因此,如果您的脚本运行如下:
AutoIt3.exe myscript.au3 param1 "this is another param"
$ CmdLine [0]等于...... 2
$ CmdLine [1]等于... param1
$ CmdLine [2]等于......这是另一个参数
@ScriptName equals ... myscript.au3
除了$ CmdLine之外,还有一个名为$ CmdLineRaw的变量,它包含整个命令行unsplit
以下是如何在您的情况下完成:
WinWait("File Upload","",10)
ControlFocus("File Upload","","Edit1")
Sleep(2000)
ControlSetText("File Upload" , "", "Edit1", $CmdLineRaw)
Sleep(2000)
ControlClick("File Upload" , "","Button1");
然后在调用编译的autoit
时发送命令行参数Run("FileUpload.exe resources/my_file.txt")