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

在Eclipse中为AutoIt脚本获取文件的运行时路径,eclipse,file-upload,runtime,autoit,absolute-path,Eclipse,File Upload,Runtime,Autoit,Absolute Path,我想在我的自动化代码中为文件上传编写一个脚本。我将我的文件保存在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(

我想在我的自动化代码中为文件上传编写一个脚本。我将我的文件保存在
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脚本中使用该路径?

特殊数组$CmdLine使用传入AutoIt脚本的命令行参数进行初始化。注意scriptname没有被归类为参数;改为使用@ScriptName获取此信息。包含空格的参数必须用“双引号”括起来。编译脚本以相同的方式接受命令行参数

$CmdLine[0]是参数数 $CmdLine[1]是参数1(在脚本名称之后) $CmdLine[2]是参数2等 ... $CmdLine[$CmdLine[0]]是获取最后一个参数的一种方法

因此,如果您的脚本是这样运行的:

AutoIt3.exe myscript.au3 param1 "this is another param"
$CmdLine[0]等于。。。二,

$CmdLine[1]等于。。。参数1

$CmdLine[2]等于。。。这是另一个参数

@ScriptName等于。。。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");
然后在调用它时发送一个命令行参数

Run("FileUpload.exe resources/my_file.txt")

嗯,你可以试着使用WorkingDir宏,比如:@WorkingDir&'resources/my_file.txt'.@Hargrove先生你好,谢谢你的回复,但我没有正确地理解你…@fresh先生说的是,你应该试着用
@WorkingDir
宏调用
ControlSetText
,比如:
ControlSetText(“文件上传”),“Edit1”、@WorkingDir&“resources/my_file.txt”)
。谢谢@mrt您的完美解释。非常感谢。它成功了。现在我可以动态发送文件路径。