Start-Process - как захватить вывод в файл? - PullRequest
0 голосов
/ 04 марта 2019

Я запускаю puttysftp для загрузки файлов, но процесс иногда зависает, поэтому я также собираю идентификатор процесса и уничтожу его через 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
...