启动过程-如何捕获输出到文件?

时间:2019-03-04 04:29:23

标签: powershell powershell-v4.0

我正在启动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

0 个答案:

没有答案
相关问题