2015-02-05 49 views
2

我有一個可用的PowerShell腳本,它可以遍歷通過FTP訪問的目錄並打印它的內容。該腳本如下所示:使用PowerShell下載目錄中的所有文件

$sourceuri = "<string>" 
$targetpath = "<string>" 
$username = "<string>" 
$password = "<string>" 

# Create a FTPWebRequest object to handle the connection to the ftp server 
$ftprequest = [System.Net.FtpWebRequest]::create($sourceuri) 

# set the request's network credentials for an authenticated connection 
$ftprequest.Credentials = New-Object System.Net.NetworkCredential($username,$password) 

$ftprequest.Method = [System.Net.WebRequestMethods+Ftp]::ListDirectoryDetails 
$ftprequest.UseBinary = $true 
$ftprequest.KeepAlive = $false 

# send the ftp request to the server 
$ftpresponse = $ftprequest.GetResponse() 
$stream = $ftpresponse.getresponsestream() 

$buffer = new-object System.Byte[] 1024 
$encoding = new-object System.Text.AsciiEncoding 

$outputBuffer = "" 
$foundMore = $false 

## Read all the data available from the stream, writing it to the 
## output buffer when done. 
do 
{ 
    ## Allow data to buffer for a bit 
    start-sleep -m 1000 

    ## Read what data is available 
    $foundmore = $false 
    $stream.ReadTimeout = 1000 

    do 
    { 
     try 
     { 
      $read = $stream.Read($buffer, 0, 1024) 
      if($read -gt 0) 
      { 

       $foundmore = $true 
       $outputBuffer += ($encoding.GetString($buffer, 0, $read)) 
      } 
     } 
     catch 
     { 
      $foundMore = $false; $read = 0 
     } 
    } 
    while($read -gt 0) 
} 
while($foundmore) 

$outputBuffer 

我的實際目標不是列出文件,而是將它們下載到運行腳本的計算機上。我發現這有點棘手,因爲我的循環只引用字節而不是名稱文件。我如何使用這個循環來下載目錄中的所有文件,而不是僅僅列出它們?

回答

-1

一旦你有一個目錄和文件列表 - 使用get-content方法從列表中讀取,然後使用位傳輸下載所有文件 - 我不知道這是否會下載目錄以及...但它肯定會下載文件...

相關問題