我正在启动puttysftp来下载文件,但是该进程偶尔会卡住,因此我还捕获了该进程ID,如果卡住,它将在2分钟内将其杀死,以便其他进程可以继续。
问题是-没有传输的SFTP日志,所以我不知道发生了什么。在-ArgumentList中重定向不会产生任何结果。是否有另一种方法可以达到相同的结果,例如在2分钟内杀死该进程并完整登录PowerShell?非常感谢!
$logfile = Get-Date -UFormat "%Y-%m-%d"
Start-Transcript -Append -Path C:\Scripts\FTPs-PS\FTP-PS_logs\FTP-$logfile.txt
$process = Start-Process "C:\Program Files (x86)\PuTTY\psftp.exe" -ArgumentList "username@localhost -pw StrongPassword -batch -b C:\Scripts\sft.txt" -NoNewWindow -PassThru -Verbose
do {
start-sleep 5
if (-Not (Get-Process -Id ($process.Id))) {break}
$date = $process.StartTime | Out-String
$total = New-TimeSpan -Start $date -End (Get-Date)
} while ($total.TotalSeconds -lt 120)
if ((Get-Process -Id ($process.Id))) {Stop-Process -id ($process.Id)}
Stop-Transcript