0

FTP ディレクトリにファイルの概要を一覧表示するループが既にあります。$outputBuffer には以下が含まれます

/archive/20120806_141250.txt
/archive/20120806_142114.txt
/archive/20120807_090149.txt
/archive/20120808_090348.txt

/archive を完全な ftp アドレスに置き換える For-EachObject があります。

$outputBuffer | Foreach-Object {
    $_ -replace 'archive/', 'ftp://ftp.test.com/outbound/archive/'
    }

私の結果は次のとおりです。

ftp://test.com/outbound/archive/20120806_141250.txt
ftp://test.com/outbound/archive/20120806_142114.txt
ftp://test.com/outbound/archive/20120807_090149.txt
ftp://test.com/outbound/archive/20120808_090348.txt

この ForEach-Object ステートメントに行を追加して、置換後に各ファイルをダウンロードするにはどうすればよいでしょうか?

4

2 に答える 2

0

これを試して:

$webclient = New-Object System.Net.WebClient
$webclient.credentials = new-object system.net.networkcredential("user", "password")
$outputBuffer | Foreach-Object {
    $filePath = $_ -replace 'archive/', 'ftp://ftp.test.com/outbound/archive/'
    #Adjust D:\local\ to be an actual folder.
    $fileDest = $_ -replace '/archive/', 'D:\local\'
    $uri = New-Object System.Uri($filePath)
    $webclient.DownloadFile($uri, $fileDest)
}
于 2012-08-09T17:16:23.417 に答える
0
$links = $outputBuffer | Foreach-Object {
    $_ -replace 'archive/', 'ftp://ftp.test.com/outbound/archive/'
    }

その後

foreach($link in $links)
{
Invoke-WebRequest $link
}

これにより、ファイルが PWD にダウンロードされます。

于 2012-08-09T17:06:31.000 に答える