如何获取原始VBScript命令行参数?

如何获取原始VBScript命令行参数?,vbscript,cmd,command-line-arguments,Vbscript,Cmd,Command Line Arguments,如何在.vbs文件中获取整个命令行?我希望自己处理它,所有的特殊字符/引号仍然完好无损 例如,命令: 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 I

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

例如,命令:

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
这些方法会损坏并删除所有引用

我想得到原始参数,未经任何处理:

/月份:4月/价格:500“乔·史密斯”是“我们”的人

您可以使用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

你不能。我喜欢一厢情愿的编程。看看能不能适应你的要求needs@MCND事实上,是的。我的问题看起来完全是重复的,我可以用这个答案。谢谢。我看到的唯一问题是,同一个脚本可以有两个实例运行。@MCND-不,您只需将此代码的简化版本放入一个库/每个需要命令行的文件中。对不起,我说的是同一磁盘文件中的同一个脚本,有几个实例同时运行,但参数不同。