0

我有一个 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"
}
4

1 回答 1

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"
}

注意Out-Nulltry 块末尾的 。如果您愿意,也可以使用后台作业。

于 2013-01-14T05:25:49.287 回答