标题: [问题求助] VBS脚本如何用纯粹的字符串处理方式来获取上层文件夹?[已解决] [打印本页]
作者: daols 时间: 2012-2-3 07:17 标题: VBS脚本如何用纯粹的字符串处理方式来获取上层文件夹?[已解决]
本帖最后由 daols 于 2012-4-26 23:29 编辑
想用纯粹的字符串处理方式来获取上层文件夹...理论上parDir获得的值貌似应该结尾带"\"的, 但是不知道为什么我现在得到的thisDir不带...求合理解释...要求不要取消thisvbs()函数...因为手工输入wscript.scriptfullname很麻烦不美观...还有就是只用字符串处理方法...不用fso...不用正则...
xargs-install.vbs 如下:- Private Function thisvbs()
- thisvbs=wscript.scriptfullname
- End Function
-
- Private Function parDir(FileOrFolder, delLen)
- if delLen="" then : delLen=0 : end if ' "-0" end with "\"
- FileOrFolder=join(split(FileOrFolder, "/"), "\")
- if Right(FileOrFolder, 1)="\" then : FileOrFolder=Left(FileOrFolder, Len(FileOrFolder)-1) : end if
- parDir=Left(FileOrFolder,InstrRev(FileOrFolder,"\")-delLen)
- End Function
-
- thisDir=parDir(thisvbs(), 0) '这里有问题, 得到的字符串结尾不带"\", 但是直接引用wscript.scriptfullname的话就带"\"
- upDir=parDir(thisDir, 0)
-
- msgbox parDir("B:\shellreg\xargs-vbs\xargs-install.vbs", 0)
- msgbox thisDir
- msgbox parDir(wscript.scriptfullname, 0)
- msgbox upDir
- msgbox parDir(parDir(wscript.scriptfullname, 0), 0)
复制代码
作者: Demon 时间: 2012-2-3 11:51
舍近求远
作者: applba 时间: 2012-2-3 13:33
你检测最后一个字符,看看是否为“\”,如果不是就自动加上~
作者: daols 时间: 2012-4-26 23:26
谢谢楼上两位...
csdn有人告我说是变量声明混乱造成的...已解决
Private Function parDir(FileOrFolder, delLen)
Dim ArgStr : ArgStr=FileOrFolder
if delLen="" then : delLen=0 : end if ' "-0" end with "\"
ArgStr=join(split(ArgStr, "/"), "\")
if Right(ArgStr, 1)="\" then : ArgStr=Left(ArgStr, Len(ArgStr)-1) : end if
parDir=Left(ArgStr,InstrRev(ArgStr,"\")-delLen)
End Function
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |