netegg 发表于 2013-8-25 14:32:06

回复 6# nikbobo
终于明白了
if $var='' or not(stringinstr($var, '\') or not(_WinAPI_PathFindExtension($var)) then msgbox(0,0,'')

afan 发表于 2013-8-25 14:40:57

回复nikbobo
终于明白了
if $var='' or not(stringinstr($var, '\') or not(_WinAPI_PathFindExtensio ...
netegg 发表于 2013-8-25 14:32 http://www.autoitx.com/images/common/back.gif


    你还真热心…

Duvet 发表于 2013-8-25 15:10:33

#include <File.au3>
Local $szPath, $szDrive, $szDir, $szFName, $szExt
$szPath = "C:\Windows\Explorer.exe"
_PathSplit($szPath, $szDrive, $szDir, $szFName, $szExt)
ConsoleWrite("-FileName>" & $szFName & @CRLF)
$szPath = "C:\Windows"
_PathSplit($szPath, $szDrive, $szDir, $szFName, $szExt)
ConsoleWrite("-FileName>" & $szFName & @CRLF)
$szPath = "Explorer.exe"
_PathSplit($szPath, $szDrive, $szDir, $szFName, $szExt)
ConsoleWrite("-FileName>" & $szFName & @CRLF)
$szPath = ""
_PathSplit($szPath, $szDrive, $szDir, $szFName, $szExt)
ConsoleWrite("-FileName>" & $szFName & @CRLF)
Exit

Duvet 发表于 2013-8-25 15:16:15

3、假如$Var = "C:\Windows",这样拆分出来的是Windows,而不是我想要的xx.exe,怎么办?
$Var沒包含xx.exe怎麼會有xx.exe的結果

4、也许$Var两侧包含英文双引号或英文单引号,怎么办?(如何先去除这些,必须先去除)
$szPath = StringRegExpReplace($szPath, "\A[""']|[""']\Z", '')

nikbobo 发表于 2013-8-25 16:28:30

回复 16# netegg

不好意思,我想多了,其实关键的你已经给出来了。
其实只要用_WinAPI_PathIsExe ( $sPath )就行了,汗!
但是,有一个问题,有人说AutoIt3的WinApi部分函数在PE下会失效,这些不会吧?

nikbobo 发表于 2013-8-25 16:29:46

回复 20# Duvet


    感谢你对第四个问题的解答。

netegg 发表于 2013-8-25 21:17:29

本帖最后由 netegg 于 2013-8-25 21:19 编辑

not(_WinAPI_PathFindExtension($var)) 改成not(stringinstr($var, '.'))
或者not(stringright($var,4)<>'.exe')
页: 1 [2]
查看完整版本: [已解决]StringSplit 如何得到最后一个拆分的字符串?