mm33082 发表于 2014-4-25 18:33:46

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

本帖最后由 mm33082 于 2014-4-25 20:15 编辑

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

另外问一下路径宏中@ScriptDir 和@WorkingDir有什么区别?
谢谢

skyfree 发表于 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的当前目录。

mm33082 发表于 2014-4-25 20:15:25

感谢你的回答。
我再试试其他方式。
页: [1]
查看完整版本: [已解决]关于include的文件中包含路径的问题