首页 文章

如何区分VBscript是从命令行运行还是在窗口中单击它?

提问于
浏览
3

我想要做的就是区分命令行运行的程序或单击窗口中的test.vbs文件 .

如果通过在命令提示符下键入 C:\testFolder\test.vbs 来运行脚本,那么我希望程序的运行方式与在 testFolder 中双击 test.vbs 的方式不同 .

是否有一些系统变量可以用来区分这两种情况?我首先尝试使用 WScript.Fullname 来确定路径名是以cscript还是wscript结尾 . 但那并没有那么好用 .

任何想法都非常感谢 .

2 回答

  • 4

    你可以尝试这样的事情:

    Set WshShell = CreateObject("WScript.Shell")
    Set objEnv = WshShell.Environment("Process")
    
    msgbox objenv("PROMPT")
    

    通常,PROMPT在从命令提示符运行时将设置为$ P $ G,但在直接运行.VBS文件时保留为空 .

  • 3

    如果要对 WScript.FullName 进行测试,可以将 InStrvbTextCompare 一起使用,以使匹配不区分大小写 .

    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
    

相关问题