2016-07-26 2 views
0

Я использую powershell FTP Client Module, чтобы установить FTP-соединение, чтобы получить некоторые файлы.FTP-соединение Powershell

Я знаю, что я могу получить вывод команды таким образом:

$output = (command) | Out-String 

Я хотел бы перенаправить вывод -Verbose атрибута в переменную .. Я делаю что-то вроде этого, но FTP-соединение не может быть создано, мои скрипты просто останавливаются.

$output1 = (Set-FTPConnection -Server $ftp_server -Credentials $mycreds -Session $session) 
$output2 = (
    Get-FTPChildItem -Path $ftp_path -Session $session -Verbose | % { 
     $ftpFile = "ftpPathIn/$($_.Name)" 
     Get-FTPItem -Path $ftpFile -LocalPath $PathToFile -Overwrite -Session $session -Verbose 
    }) | Out-String 

PS: не пытаясь перенаправить вывод в переменную, сценарий работает очень хорошо. Поэтому я подозреваю, что ошибка в том, как я пытаюсь перенаправить вывод в $output. Как я могу перенаправить вывод в переменную $ output?

ответ

2

Вы могли бы попробовать что-то вроде этого:

$output2 = $(
    Get-FTPChildItem -Path $ftp_path -Session $session -Verbose | % { 
     $ftpFile = "ftpPathIn/$($_.Name)" 
     Get-FTPItem -Path $ftpFile -LocalPath $PathToFile -Overwrite -Session $session -Verbose 
    }) 4>&1 

Get-Help about_Redirection См для объяснения синтаксиса перенаправления потока.

+1

Для получения дополнительной информации: https://blogs.technet.microsoft.com/heyscriptingguy/2014/03/30/understanding-streams-redirection-and-write-host-in-powershell/ –

+0

Благодарим вас обоих! Оно работает!! до свидания – Hari

Смежные вопросы