如何获取脚本自身名称
本帖最后由 botanycc 于 2009-6-13 22:17 编辑有没办法获取脚本自身名称,不包括路径和扩展名,就单单名称 @ScriptName 这函数我也知道,如何去除路径,我就需要单单文件名 @ScriptDir 脚本所在目录. (不包含反斜杠符号"\")
@ScriptName 当前运行的脚本的长文件名.
@ScriptFullPath 等价于 @ScriptDir & "\" & @ScriptName
@ScriptName只有文件名,
@ScriptDir只有目录,
@ScriptFullPath既有目录,又有文件名,中间还有个“\” 会返回路径的,我还是不会搞
#include <File.au3>
Dim $sDrive, $sPath, $sName, $sExtension
_PathSplit(@ScriptFullPath, $sDrive, $sPath, $sName, $sExtension)
Msgbox(0, '', $sName)
$sName = StringRegExp(@ScriptName, "(.+)\.", 1)
Msgbox(0, '', $sName)
楼上正解+强解,无懈可击 Re 7#:
有懈可击,你新建个脚本,无扩展名,运行试下,第2种方法就会出错了。 Re 7#:
有懈可击,你新建个脚本,无扩展名,运行试下,第2种方法就会出错了。 果真强悍,谢谢解答 正则处理还是比较方便的。。 Re 7#:
有懈可击,你新建个脚本,无扩展名,运行试下,第2种方法就会出错了。
pusofalse 发表于 2009-6-13 21:55 http://www.autoitx.com/images/common/back.gif
长的比短好。。。 本帖最后由 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)
上述两个例子都能解决无扩展名的问题,之前不好意思没看清楚楼主的要求 楼上的不错
页:
[1]