我有一个Powershell脚本,它使用VAppLauncher程序在整个代码中启动WinSCP三次,将文件从Windows移动到Unix。
我想知道是否有命令等待/暂停Powershell脚本,直到虚拟WinSCP控制台完成并且窗口关闭。目前,代码只是完成了这些步骤,而不是等待它完成。
对应用的调用:
C:\Windows\SysWOW64\CCM\VAppLauncher.exe /launch "WinSCP 4.0.6.358" /console /script=$aScript /log=$aLog
完整代码:
Try {
C:\Windows\SysWOW64\CCM\VAppLauncher.exe /launch "WinSCP 4.0.6.358" /console /script=$aScript /log=$aLog
}
Catch [Exception] {
Add-Content $tempLog "$a - System exception running $putScript:"
Add-Content $tempLog $_.Exception.Message
}
Finally {
Add-Content $tempLog "$a - WinSCP ran $putScript successfully"
}
答案 0 :(得分:1)
最简单的方法是将WinSCP实例传递给Out-Null,这将使脚本停止运行,直到WinSCP关闭。
Try
{
C:\Windows\SysWOW64\CCM\VAppLauncher.exe /launch "WinSCP 4.0.6.358" /console /script=$aScript /log=$aLog | Out-Null
}
Catch [Exception]
{
Add-Content $tempLog "$a - System exception running $putScript:"
Add-Content $tempLog $_.Exception.Message
}
Finally
{
Add-Content $tempLog "$a - WinSCP ran $putScript successfully"
}
注意try块末尾的Out-Null
。如果您愿意,也可以使用后台作业。