首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据未保留在autoit中

数据未保留在autoit中
EN

Stack Overflow用户
提问于 2011-01-13 08:22:15
回答 1查看 681关注 0票数 0

我使用一个文件将数据发送到全局文件中的全局变量,然后让另一个文件尝试从全局文件中检索该数据。

示例:

主文件向全局文件发送数据,其他文件从全局文件获取数据

由于某些原因,数据没有被保留。当我从全局文件中拉出数据时,它不在那里。为什么会这样呢?

下面是一些示例代码:

代码语言:javascript
复制
;main.au3
#include-once
#include "global.au3"


$g1 = "stuff"
$g2 = "stuff"

Run("copy.exe")

;global.au3
#include-once

Global $g1 = ""
Global $g2 = ""

;copy.au3
#include-once
#include "global.au3"

MsgBox(0, $g1, $g2)

main.au3和copy.au3已经内置于.exe中,我双击main来运行它。

结果:$g1和$g2等于"“和"”,而它应该打印"stuff“

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-14 01:31:21

这是因为global.au3没有更新。它为你的变量提供初始值。使用#include "global.au3"与编写相同:

代码语言:javascript
复制
;main.au3
#include-once
Global $g1 = ""
Global $g2 = ""

$g1 = "stuff"
$g2 = "stuff"

Run("copy.exe")

代码语言:javascript
复制
;copy.au3
#include-once
Global $g1 = ""
Global $g2 = ""

MsgBox(0, $g1, $g2)

如您所见,copy.au3 (copy.exe)将$g1$g2设置为""

要将$g1$g2变量传递给copy.exe,可以使用IniRead()/IniWrite()读/写.ini文件,或者将变量作为命令行参数传递。

以下是命令行参数选项的示例:

(无需global.au3;编译main.au3和copy.au3;双击main.exe即可运行)

main.au3

代码语言:javascript
复制
;main.au3

$g1 = "stuff"
$g2 = "stuff"

ShellExecute('copy.exe', $g1 & ' ' & $g2)

copy.au3

代码语言:javascript
复制
;copy.au3

$g1 = $CmdLine[1]
$g2 = $CmdLine[2]

MsgBox(0, $g1, $g2)

我使用ShellExecute()而不是Run(),因为在过去(对我来说) Run()一直是个麻烦。我通常对ShellExecute()ShellExecuteWait()没有任何问题。

此外,有关命令行参数的更多信息,您可以在AutoIt帮助中搜索“命令行参数”。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4675545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档