如何获取原始 VBScript 命令行参数?
How do I get raw VBScript command line arguments?
如何在 .vbs 文件中获取整个命令行?我希望自己处理它,所有特殊 characters/quotes 仍然完好无损。
例如命令:
cscript.exe example.vbs /month:April /price:500 "Joe Smith" is "our" guy
我对以下内容不感兴趣:
WScript.Arguments.Named.Item("month")
= April
WScript.Arguments.Item(2)
= Joe Smith
Dim StrArgs
For Each arg In WScript.Arguments
StrArgs = StrArgs & " " & arg
Next
= /month:April /price:500 Joe Smith is our guy
这些方法会破坏和去除所有引号。
我想获取未经任何处理的原始参数:
/month:April /price:500 "Joe Smith" is "our" guy
您可以使用 WMI:
Option Explicit
Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20
Dim oWMI : Set oWMI = GetObject("winmgmts:\.\root\CIMV2")
Dim oCol : Set oCol = oWMI.ExecQuery( _
"SELECT Commandline FROM Win32_Process", _
"WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)
Dim oElm
For Each oElm In oCol
If Instr(oElm.CommandLine, "40056204.vbs") Then
WScript.Echo "CommandLine: " & oElm.CommandLine
End If
Next
输出:
cscript 40056204.vbs /month:April /price:500 "Joe Smith" is "our" guy
CommandLine: cscript 40056204.vbs /month:April /price:500 "Joe Smith" is "our" guy
如何在 .vbs 文件中获取整个命令行?我希望自己处理它,所有特殊 characters/quotes 仍然完好无损。
例如命令:
cscript.exe example.vbs /month:April /price:500 "Joe Smith" is "our" guy
我对以下内容不感兴趣:
WScript.Arguments.Named.Item("month")
= April
WScript.Arguments.Item(2)
= Joe Smith
Dim StrArgs
For Each arg In WScript.Arguments
StrArgs = StrArgs & " " & arg
Next
= /month:April /price:500 Joe Smith is our guy
这些方法会破坏和去除所有引号。
我想获取未经任何处理的原始参数:
/month:April /price:500 "Joe Smith" is "our" guy
您可以使用 WMI:
Option Explicit
Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20
Dim oWMI : Set oWMI = GetObject("winmgmts:\.\root\CIMV2")
Dim oCol : Set oCol = oWMI.ExecQuery( _
"SELECT Commandline FROM Win32_Process", _
"WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)
Dim oElm
For Each oElm In oCol
If Instr(oElm.CommandLine, "40056204.vbs") Then
WScript.Echo "CommandLine: " & oElm.CommandLine
End If
Next
输出:
cscript 40056204.vbs /month:April /price:500 "Joe Smith" is "our" guy
CommandLine: cscript 40056204.vbs /month:April /price:500 "Joe Smith" is "our" guy