获取Eclipse中文件的运行时路径以获取AutoIt脚本

时间:2014-10-09 09:33:54

标签: eclipse file-upload runtime autoit absolute-path

我想在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脚本中使用它?

1 个答案:

答案 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")