我如何获得原始VBScript命令行参数



如何在。vbs文件中获得整个命令行?我希望自己处理它,所有特殊字符/引号仍然完好无损。

例如,命令:

cscript.exe example.vbs /month:April /price:500 "Joe Smith" is "our" guy 

I am NOT interested in:

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

这些方法把所有的引号弄乱并去掉。

我想获得原始参数,未以任何方式处理:

/月:四月/价格:500 "Joe Smith"是"我们"的人

可以使用WMI:

Option Explicit
Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20
Dim oWMI : Set oWMI = GetObject("winmgmts:\.rootCIMV2")
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

最新更新