找回密码
 加入
搜索
查看: 13356|回复: 20

[AU3基础] 关于@ScriptDir最后的\

 火.. [复制链接]
发表于 2011-4-4 10:16:41 | 显示全部楼层 |阅读模式
帮助中对于这个宏是这样解释的
@ScriptDir 当前运行中的脚本所在的目录(不包括结尾的反斜杠符号)。

但是@ScriptDir得到的路径,如果直接在磁盘下,比如D盘,得到的路径就是D:\,是带反斜杠符号的,这样写的时候,如果直接在磁盘下,运行的东西,生成的路径,都会是带两个\\的路径
比如脚本里写@ScriptDir & "\script"在D盘运行,得到的结果是d:\\script
问问各位这样会有什么影响呢,有人注意到没?
发表于 2011-4-4 11:01:02 | 显示全部楼层
本帖最后由 lixiaolong 于 2011-4-4 11:12 编辑

回复 1# dearmb

这个我真没注意到,是BUG?还是...

不过写个用户定义函数就可以解决这个问题.
$a = _DirPath(@ScriptDir & '\' & 'WINDOWS')
MsgBox(0, '', $a)

Func _DirPath($Path)
        If StringInStr($Path, '\\') Then $Path = StringReplace($Path, '\\', '\')
        Return $Path
EndFunc   ;==>_DirPath
 楼主| 发表于 2011-4-4 11:05:31 | 显示全部楼层
不知道,我感觉算个小BUG,目前我用的路径,\\运行还没问题,我只能认为windows会自动识别两个\的路径了
……
发表于 2011-4-4 12:00:38 | 显示全部楼层
厉害,这个都被你细心发现了~~
 楼主| 发表于 2011-4-4 12:23:59 | 显示全部楼层
厉害,这个都被你细心发现了~~
annybaby 发表于 2011-4-4 12:00


唉……我原来测试D:\带\,以为全带\,后面&路径就都没写\
致使脚本全部出错,就发现了……
@ScriptDir应用很多,造成的麻烦真的很麻烦……
发表于 2011-4-4 13:52:11 | 显示全部楼层
在我学au3不久,就发现这个问题了,于是不得不加个判断来解决这个问题。
象下面这样子:If StringInStr($TotalcmdDIR, "\\") Then $TotalcmdDIR = StringReplace($TotalcmdDIR, "\\", "\")
发表于 2011-4-4 15:50:02 | 显示全部楼层
回复 5# dearmb


    这个宏我几乎没有怎么用,一般都不写路径,有时会用下@DesktopDir
发表于 2011-4-4 16:56:58 | 显示全部楼层
说到这个“\”让我想起最初用post时,一不小心加成了“//”,用了好久,一切正常,估计ie自己过滤了。
发表于 2011-4-4 18:41:25 | 显示全部楼层
\\ WINDOWS会自动在目录里识别为\。关系不大的。。。
发表于 2011-4-4 18:55:01 | 显示全部楼层
回复 1# dearmb
了解下windows的文件系统命名规则就行了
发表于 2011-4-4 18:56:01 | 显示全部楼层
回复 9# boyhong


   
发表于 2011-4-4 19:23:13 | 显示全部楼层
本帖最后由 水木子 于 2011-4-11 11:44 编辑

经常遇到这样的问题,无奈只好加个判断进行处理,我想这个宏的原型应该是这样的吧!

$a = DllStructCreate('CHAR[64]')
DllCall('Kernel32.dll', 'int', 'GetCurrentDirectory', 'int', DllStructGetSize($a), 'ptr', DllStructGetPtr($a))
MsgBox(0, '当前目录', DllStructGetData($a, 1))
$a = ''
发表于 2011-4-4 19:24:14 | 显示全部楼层
楼主真细心啊,这都发现了。
发表于 2011-4-4 20:18:45 | 显示全部楼层
这个应该是新版修改了,以前确实没有反斜杠的!!!
发表于 2011-4-4 21:43:54 | 显示全部楼层
感觉和C++的文件操作差不多
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-15 06:47 , Processed in 0.172224 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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