找回密码
 加入
搜索
查看: 2857|回复: 13

[AU3基础] 关于改变工作目录问题[已解决]

[复制链接]
发表于 2020-6-30 22:02:43 | 显示全部楼层 |阅读模式
本帖最后由 .Simba 于 2020-7-1 11:09 编辑

代码如下:
#include <MsgBoxConstants.au3>

Example()

Func Example()
    FileSaveDialog('保存', @WorkingDir, '', 16, 'tes.txt')
    FileChangeDir(@ScriptDir & '\test')
    FileSaveDialog('保存', @WorkingDir, '', 16, 'tes.txt')
EndFunc   ;==>Example
脚本的时候测试好好的,编译成 EXE 放到另外一个目录运行就不行了,总是莫名其妙的指向我的一个游戏目录,这个函数是不是我用错了?
发表于 2020-6-30 22:20:05 | 显示全部楼层
这段没问题
 楼主| 发表于 2020-6-30 23:01:16 来自手机 | 显示全部楼层
afan 发表于 2020-6-30 22:20
这段没问题

但是编译后,换目录就变了。
发表于 2020-6-30 23:06:20 | 显示全部楼层
.Simba 发表于 2020-6-30 23:01
但是编译后,换目录就变了。

我说这段代码没问题,当然包括编译后同样没问题。
你既然这么确定我就不说了。
 楼主| 发表于 2020-6-30 23:21:58 来自手机 | 显示全部楼层
afan 发表于 2020-6-30 23:06
我说这段代码没问题,当然包括编译后同样没问题。
你既然这么确定我就不说了。

我再试试,我这里确实变了( ̄ε(# ̄)
发表于 2020-6-30 23:31:05 | 显示全部楼层
@WorkingDir 当前或活动的工作目录. 当脚本位于驱动器根目录时仅包括尾部的反斜杠.
所以同时有跑游戏?

@ScriptDir 当前运行脚本的所在目录. 当脚本位于驱动器根目录时仅包括尾部的反斜杠.  <---- 試試這
发表于 2020-7-1 09:25:06 | 显示全部楼层
yohoboy 发表于 2020-6-30 23:31
@WorkingDir 当前或活动的工作目录. 当脚本位于驱动器根目录时仅包括尾部的反斜杠.
所以同时有跑游戏?

...

他这段代码没有问题,不管同时在干什么,包括其它程序造成的工作目录变动。
如有问题肯定不是这段代码。
 楼主| 发表于 2020-7-1 09:47:51 | 显示全部楼层
yohoboy 发表于 2020-6-30 23:31
@WorkingDir 当前或活动的工作目录. 当脚本位于驱动器根目录时仅包括尾部的反斜杠.
所以同时有跑游戏?

...

我也是按照帮助文档里操作的,加了个反斜杠貌似有作用。
FileChangeDir(@ScriptDir & '\test')
        Local $fFile = FileSaveDialog('保存', @WorkingDir & '\', '保存(*.*)', 16)


 楼主| 发表于 2020-7-1 10:08:19 | 显示全部楼层
afan 发表于 2020-7-1 09:25
他这段代码没有问题,不管同时在干什么,包括其它程序造成的工作目录变动。
如有问题肯定不是这段代码。

我貌似找到原因了,我定了一个全局的目录制定,在工具启动的时候会读取这个目录地址,我修改后,保存打开的目录就是这个全局的目录。

Global $TEST_PATH
发表于 2020-7-1 10:13:10 | 显示全部楼层
.Simba 发表于 2020-7-1 10:08
我貌似找到原因了,我定了一个全局的目录制定,在工具启动的时候会读取这个目录地址,我修改后,保存打开 ...

所以说提供的测试代码一定要(精简到)能重现问题,反之像这种没问题的代码就无任何意义了。
发表于 2020-7-1 10:19:25 | 显示全部楼层
另外,@WorkingDir 一般没必要的情况下少用,因为这是系统随时会变的宏,任何外部程序都可能使之改变,比如有交互的打开、保存对话框,甚至无交互。
 楼主| 发表于 2020-7-1 10:37:39 | 显示全部楼层
afan 发表于 2020-7-1 10:19
另外,@WorkingDir 一般没必要的情况下少用,因为这是系统随时会变的宏,任何外部程序都可能使之改变,比如 ...

原来是这样,我想把问题复现,但是按照逻辑走一遍貌似有不能单独分离出来。代码中我指定了Mr3目录,工具会调用这个目录的执行文件。我设置这个游戏目录的变量后,在保存文件和打开文件就会出现在这个目录下。


我试试直接指定要保存的目录看看,是不是直接指定目录就不用 FileChangeDir() 这个函数了?
发表于 2020-7-1 11:27:37 | 显示全部楼层
.Simba 发表于 2020-7-1 10:37
原来是这样,我想把问题复现,但是按照逻辑走一遍貌似有不能单独分离出来。代码中我指定了Mr3目录,工具 ...

固定目录本来就可以直接指定,用 @WorkingDir 是不符合逻辑的。直接指定不需要 FileChangeDir()
 楼主| 发表于 2020-7-3 14:16:07 | 显示全部楼层
afan 发表于 2020-7-1 11:27
固定目录本来就可以直接指定,用 @WorkingDir 是不符合逻辑的。直接指定不需要 FileChangeDir()

明白了,谢谢A大。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-23 11:33 , Processed in 0.072109 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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