找回密码
 加入
搜索
查看: 1947|回复: 2

[AU3基础] [已解决]关于include的文件中包含路径的问题

[复制链接]
发表于 2014-4-25 18:33:46 | 显示全部楼层 |阅读模式
本帖最后由 mm33082 于 2014-4-25 20:15 编辑

ReadConfig.au3
Global  $Config = FileRead("Config.txt")
Msgbox(0,"",$Config)
MainScript.au3
include '../Config/ReadConfig.au3'
目的: 想通过ReadConfi.au3读取该脚本路径下的Config.txt内容并赋值给Global 的$Config参数,后续其他脚本包含ReadConfig.au3使用这个参数。
但是这样包含进来的总是读取的是当前运行这个脚本(MainScript.au3)路径下的Config.txt文件。
请问要实现相似功能要怎么做呢?

另外问一下路径宏中@ScriptDir 和@WorkingDir有什么区别?
谢谢
发表于 2014-4-25 19:39:59 | 显示全部楼层
因为你运行的是MainScript.au3,所以所谓的当前目录应该是MainScript.au3所在目录,而不是ReadConfig.au3所在目录。你可以想象是将ReadConfig.au3的内容全部插入到MainScript.au3的#include点上,理所当然的读的是MainScript.au3目录下的Config.txt。

看不太明确你的需求,但按我理解,你的目的应该是MainScript.au3包含ReadConfig.au3,获取的是ReadConfig.au3目录下Config.txt的内容。这个不太容易做到,如刚才所说,包含是将被包含的所有内容插入到主代码文件中,所以无法获取ReadConfig.au3的同目录。这条思路已经基本到头了,你应该改变你的思路来实现。或许你需要在主程序中写config.txt的相对路径,或者将config.txt放在一个更为公共的位置上。

最后,关于@ScriptDir和@WorkingDir,前者是程序的当前目录,后者是程序的工作目录,当你直接运行脚本、直接运行编译后的EXE时@ScriptDir和@WorkingDir是相同的,但当你使用D:\1\A.EXE调用D:\2\B.EXE时,B.EXE的工作目录是D:\1\,即A.EXE的当前目录,而不是B.EXE的当前目录。
 楼主| 发表于 2014-4-25 20:15:25 | 显示全部楼层
感谢你的回答。
我再试试其他方式。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-17 00:52 , Processed in 0.074725 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表