botanycc 发表于 2009-6-13 15:40:21

如何获取脚本自身名称

本帖最后由 botanycc 于 2009-6-13 22:17 编辑

有没办法获取脚本自身名称,不包括路径和扩展名,就单单名称

sanmoking 发表于 2009-6-13 16:03:02

@ScriptName

botanycc 发表于 2009-6-13 16:09:52

这函数我也知道,如何去除路径,我就需要单单文件名

sanmoking 发表于 2009-6-13 16:50:12

@ScriptDir 脚本所在目录. (不包含反斜杠符号"\")
@ScriptName 当前运行的脚本的长文件名.
@ScriptFullPath 等价于 @ScriptDir & "\" & @ScriptName


@ScriptName只有文件名,
@ScriptDir只有目录,
@ScriptFullPath既有目录,又有文件名,中间还有个“\”

botanycc 发表于 2009-6-13 20:27:26

会返回路径的,我还是不会搞

pusofalse 发表于 2009-6-13 20:32:43


#include <File.au3>
Dim $sDrive, $sPath, $sName, $sExtension
_PathSplit(@ScriptFullPath, $sDrive, $sPath, $sName, $sExtension)
Msgbox(0, '', $sName)

$sName = StringRegExp(@ScriptName, "(.+)\.", 1)
Msgbox(0, '', $sName)

kn007 发表于 2009-6-13 21:23:33

楼上正解+强解,无懈可击

pusofalse 发表于 2009-6-13 21:53:42

Re 7#:
有懈可击,你新建个脚本,无扩展名,运行试下,第2种方法就会出错了。

pusofalse 发表于 2009-6-13 21:55:19

Re 7#:
有懈可击,你新建个脚本,无扩展名,运行试下,第2种方法就会出错了。

botanycc 发表于 2009-6-13 22:16:57

果真强悍,谢谢解答

menfan1 发表于 2009-6-14 08:52:16

正则处理还是比较方便的。。

kn007 发表于 2009-6-14 09:19:13

Re 7#:
有懈可击,你新建个脚本,无扩展名,运行试下,第2种方法就会出错了。
pusofalse 发表于 2009-6-13 21:55 http://www.autoitx.com/images/common/back.gif
长的比短好。。。

sanmoking 发表于 2009-6-14 15:36:29

本帖最后由 sanmoking 于 2009-6-14 15:40 编辑

如果只去除最后一级扩展名的话用下列这个,比如111.au3.txt,识别出来为111.au3
if StringInStr (@ScriptName, "." , 0, -1 )>1 then
$name = StringLeft (@ScriptName, StringInStr (@ScriptName, "." , 0, -1 )-1)
else
$name = @ScriptName
endif
MsgBox(0,$name,$name)


如果去除所有级别的扩展名的话用下列这个,比如111.au3.txt,识别出来为111
if StringInStr (@ScriptName, "." )>1 then
$name = StringLeft (@ScriptName, StringInStr (@ScriptName, ".")-1)
else
$name = @ScriptName
endif
MsgBox(0,$name,$name)

上述两个例子都能解决无扩展名的问题,之前不好意思没看清楚楼主的要求

kn007 发表于 2009-6-14 18:15:05

楼上的不错
页: [1]
查看完整版本: 如何获取脚本自身名称