路径A:\BBB\CCC.EXE 如何直接截取到A:\BBB这个路径呢
CCC.EXE不定长 以斜线分割 StringSplit 正则是最好的方法:MsgBox(96,'',StringRegExpReplace('A:\BBB\CCC.EXE','\\[^\\]*$', '')) 推荐你看看这个文章:
http://deerchao.net/tutorials/regex/regex.htm
我把这个文件存到了本地,又将其纳入了我的“源码集装箱”,查询起来很是方便
当然,我要修改我的filetype.ini文件,让程序可以接纳htm文档了! 貌似用_PathSplit对深层目录更直观 突发的想法:能否用“FileGetShortcut "结合其它函数来获取? 突发的想法:能否用“FileGetShortcut "结合其它函数来获取?
lchl0588 发表于 2010-5-18 12:16 http://www.autoitx.com/images/common/back.gif$details = FileGetShortcut(@DesktopDir & "\1.lnk")
MsgBox(0, "工作目录:", $details)但意义不大,难道所有文件都创建快捷方式?? _PathSplit这个函数其实蛮复杂的,很多行 _PathSplit这个函数其实蛮复杂的,很多行 #Include <WinAPIEx.au3>
_WinAPI_PathFindNextComponent( $sPath ) 看了三楼的回复,觉得还是正则最好
正则我不熟,下面是我常用的方法,呵,有些笨。
$PATH = "A:\BBB\CCC.EXE"
$array = StringSplit($PATH, "\")
$PATH2 = ""
For $i = 1 To $array - 1
$PATH2 = $PATH2 & $array[$i] & "\"
Next
MsgBox(0, "", $PATH2) 本帖最后由 foboy 于 2010-5-19 11:45 编辑
StringLeft("A:\BBB\CCC.EXE", StringInStr("A:\BBB\CCC.EXE", "\", 0, -1))
这个表达式返回A:\BBB\
大概意思就是从右侧开始查找第一个"\"在字符串中的位置,然后从字符串中截取从第一个字符到这个位置的部分,如果不要最后面的\, StringLeft("A:\BBB\CCC.EXE", StringInStr("A:\BBB\CCC.EXE", "\", 0, -1)-1)
即可。
关键是StringInStr这个函数,有个参数可以控制从右侧开始查找,详情见帮助文件。
页:
[1]