我想要做的就是区分命令行运行的程序或单击窗口中的test.vbs文件 .
如果通过在命令提示符下键入 C:\testFolder\test.vbs 来运行脚本,那么我希望程序的运行方式与在 testFolder 中双击 test.vbs 的方式不同 .
C:\testFolder\test.vbs
testFolder
test.vbs
是否有一些系统变量可以用来区分这两种情况?我首先尝试使用 WScript.Fullname 来确定路径名是以cscript还是wscript结尾 . 但那并没有那么好用 .
WScript.Fullname
任何想法都非常感谢 .
你可以尝试这样的事情:
Set WshShell = CreateObject("WScript.Shell") Set objEnv = WshShell.Environment("Process") msgbox objenv("PROMPT")
通常,PROMPT在从命令提示符运行时将设置为$ P $ G,但在直接运行.VBS文件时保留为空 .
如果要对 WScript.FullName 进行测试,可以将 InStr 与 vbTextCompare 一起使用,以使匹配不区分大小写 .
WScript.FullName
InStr
vbTextCompare
If InStr(1, WScript.FullName, "cscript", vbTextCompare) Then WScript.Echo "Console" ElseIf InStr(1, WScript.FullName, "wscript", vbTextCompare) Then WScript.Echo "Windows" Else WScript.Echo "???" End If
2 回答
你可以尝试这样的事情:
通常,PROMPT在从命令提示符运行时将设置为$ P $ G,但在直接运行.VBS文件时保留为空 .
如果要对
WScript.FullName
进行测试,可以将InStr
与vbTextCompare
一起使用,以使匹配不区分大小写 .