调用需要用户输入的命令程序

Call command program that requires user input

使用 VBScript(运行 到 cscript),如何调用另一个命令程序(在本例中为 pscp),这也需要用户输入等?

目的是初始 VBScript 将收集参数(密码、用户等),然后 pscp 命令

pscp -r -pw password copyFromPath user@host:copyToPath

可以发出,用户将能够看到 pscp 命令的输出,并且能够输入(例如,如果他们输入了错误的密码并需要重新输入)。

我目前有:

' create the command, that calls pscp from cmd
Dim comSpec : comSpec = objShell.ExpandEnvironmentStrings("%comspec%")
Dim command : command = comspec & " /C " & """" & "pscp -r -pw " & "^""" & (Replace(pscpPassword,"""","\^""")) &  "^"" " _
  & "^""" & (windowsPath) & "^"" " _
  & pscpUser & "@" & pscpHostName & ":" & Replace(linuxPath," ","\ ") & """"
Dim objExec : Set objExec = objShell.Exec(command)

我想出的另一种生成 command 的方法是:

Dim command : command = "pscp -r -pw " & Chr(34) & Replace(pscpPassword,"""","\""") & Chr(34) & " " _
  & Chr(34) & windowsPath & Chr(34) & " " _
  & pscpUser & "@" & pscpHostName & ":" & Replace(linuxPath," ","\ ")

但是这些都不允许我在 pscp 被调用后与它交互。

编辑

我打电话给 pscp 的事实几乎无关紧要。我可以调用任何要求用户输入并将内容显示到 stdoutstderr

的程序

我将所有命令放在一个脚本中(用&分隔),然后运行它们在循环之后全部执行。我附加“&暂停”以保持 window 打开(有关完整详细信息,请参阅问题下的评论)