如何使用命令行参数在vbscript中调用函数?

如何使用命令行参数在vbscript中调用函数?,vbscript,cmd,command-line-arguments,Vbscript,Cmd,Command Line Arguments,我有一个远程执行的脚本,以查看程序是否正在运行。它工作正常,但我需要它来检查几个服务器上的几个程序,我不想重新编写它。我试图看看是否可以通过命令行调用vbscript中的函数,以便使用1个脚本并在命令行中更改参数 Function IsProcessRunning(strComputer, strProcess) Dim Process, strObject IsProcessRunning = 0 strObject = "winmgmts://" & st

我有一个远程执行的脚本,以查看程序是否正在运行。它工作正常,但我需要它来检查几个服务器上的几个程序,我不想重新编写它。我试图看看是否可以通过命令行调用vbscript中的函数,以便使用1个脚本并在命令行中更改参数

Function IsProcessRunning(strComputer, strProcess)
    Dim Process, strObject
    IsProcessRunning = 0
    strObject   = "winmgmts://" & strComputer
    For Each Process in GetObject( strObject ).InstancesOf( "win32_process" )
    If UCase( Process.name ) = UCase( strProcess ) Then
        IsProcessRunning = 1 
        If IsProcessRunning = 1 Then
            WScript.echo 1 & ": " & strProcess & " is currently running on " & strComputer      
        End If
        Exit Function
    End If
    Next
    WScript.echo 0 & ": " & strProcess " is NOT running on " & strComputer
End Function
我希望能够通过cmd运行此功能,如:
run.vbs IsprocessRunning Server3 Program2.exe更新

为什么不呢?例如。在命令行中键入:

wmic/node:server1进程,其中name='explorer.exe'获取processid

要获取服务器1上所有已启动的Explorer进程ID

来源

使用
WScript.Arguments
属性:

IsProcessRunning WScript.Arguments(0), WScript.Arguments(1)

Function IsProcessRunning(strComputer, strProcess)
    Dim Process, strObject
    IsProcessRunning = 0
    strObject = "winmgmts://" & strComputer
    For Each Process in GetObject( strObject ).InstancesOf( "win32_process" )
        If UCase(Process.name) = UCase(strProcess) Then
            IsProcessRunning = 1 
            WScript.echo 1 & ": " & strProcess & " is currently running on " & strComputer      
            Exit Function
        End If
    Next
    WScript.echo 0 & ": " & strProcess & " is NOT running on " & strComputer
End Function

最好添加一些检查脚本是否提供了适当的命令行参数。

谢谢。wscript.arguments工作得很好。这是一个脚本,将在我的网络监控软件的后端运行,因此它需要是vbscript,并且必须具有格式化的echo。