1

使用 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几乎无关紧要。我可以调用任何要求用户输入并显示内容的stdout程序stderr

4

1 回答 1

0

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

于 2016-09-29T10:37:24.203 回答