找回密码
 加入
搜索
查看: 3720|回复: 11

[AU3基础] 路径A:\BBB\CCC.EXE 如何直接截取到A:\BBB这个路径呢

  [复制链接]
发表于 2010-5-17 09:21:03 | 显示全部楼层 |阅读模式
CCC.EXE不定长 以斜线分割
发表于 2010-5-17 12:30:43 | 显示全部楼层
StringSplit
发表于 2010-5-17 22:43:42 | 显示全部楼层
正则是最好的方法:
MsgBox(96,'',StringRegExpReplace('A:\BBB\CCC.EXE','\\[^\\]*$', ''))

评分

参与人数 1金钱 +15 收起 理由
afan + 15

查看全部评分

发表于 2010-5-17 23:01:32 | 显示全部楼层
推荐你看看这个文章:
http://deerchao.net/tutorials/regex/regex.htm
我把这个文件存到了本地,又将其纳入了我的“源码集装箱”,查询起来很是方便
当然,我要修改我的filetype.ini文件,让程序可以接纳htm文档了!
发表于 2010-5-17 23:22:55 | 显示全部楼层
貌似用_PathSplit对深层目录更直观
发表于 2010-5-18 12:16:22 | 显示全部楼层
突发的想法:能否用“FileGetShortcut "结合其它函数来获取?
发表于 2010-5-18 19:37:46 | 显示全部楼层
突发的想法:能否用“FileGetShortcut "结合其它函数来获取?
lchl0588 发表于 2010-5-18 12:16
$details = FileGetShortcut(@DesktopDir & "\1.lnk")
MsgBox(0, "工作目录:", $details[1])
但意义不大,难道所有文件都创建快捷方式??
发表于 2010-5-18 22:38:46 | 显示全部楼层
_PathSplit这个函数其实蛮复杂的,很多行
发表于 2010-5-18 22:39:11 | 显示全部楼层
_PathSplit这个函数其实蛮复杂的,很多行
发表于 2010-5-18 23:00:28 | 显示全部楼层
#Include <WinAPIEx.au3>
_WinAPI_PathFindNextComponent( $sPath )
发表于 2010-5-18 23:26:18 | 显示全部楼层
看了三楼的回复,觉得还是正则最好

正则我不熟,下面是我常用的方法,呵,有些笨。

$PATH = "A:\BBB\CCC.EXE"

$array = StringSplit($PATH, "\")

$PATH2 = ""
For $i = 1 To $array[0] - 1
        $PATH2 = $PATH2 & $array[$i] & "\"
Next

MsgBox(0, "", $PATH2)
发表于 2010-5-19 11:43:43 | 显示全部楼层
本帖最后由 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这个函数,有个参数可以控制从右侧开始查找,详情见帮助文件。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-22 07:19 , Processed in 0.076954 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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