2016-07-26 35 views
0

私はいくつかのファイルを取得するためにFTP接続を設定するのにpowershell FTP Client Moduleを使用しています。Powershell FTP接続

私は、このようにコマンドの出力をキャプチャすることができることを知っている:私はこのような何かをやっている..私は変数に-Verbose属性の出力をリダイレクトしたい

$output = (command) | Out-String 

が、 FTP接続を作成することはできません、私のscripsは単に停止します。

$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