调用需要用户输入的命令程序
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
的事实几乎无关紧要。我可以调用任何要求用户输入并将内容显示到 stdout
和 stderr
的程序
我将所有命令放在一个脚本中(用&分隔),然后运行它们在循环之后全部执行。我附加“&暂停”以保持 window 打开(有关完整详细信息,请参阅问题下的评论)
使用 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
我将所有命令放在一个脚本中(用&分隔),然后运行它们在循环之后全部执行。我附加“&暂停”以保持 window 打开(有关完整详细信息,请参阅问题下的评论)