嗨,我是新的電源shell腳本,我試圖根據FTP服務器的文件名稱下載根目錄中的所有文件和子文件夾中的文件。因爲我正在尋找下載文件名稱相似的文件,因爲我的路徑將始終指向根目錄,並且根目錄具有文本文件和子文件夾,所以子文件夾包含文本文件。從FTP服務器遞歸下載文件
我發現這個例子中的文本文件下載到FTP服務器上的地方,但我發現的例子只從根目錄下載文本文件它不掃描子文件夾和子文件夾中沒有得到的文件。
這裏是我試過
# $url = "ftp://XXX.com/"
$user = 'UserName'
$pass = 'Password'
$folder = 'FTP_Folder'
$target = "C:\Folder\Folder1\"
#SET CREDENTIALS
$credentials = new-object System.Net.NetworkCredential($user, $pass)
function Get-FtpDir ($url,$credentials) {
$request = [Net.WebRequest]::Create($url)
$request.Method = [System.Net.WebRequestMethods+FTP]::ListDirectory
if ($credentials) { $request.Credentials = $credentials }
$response = $request.GetResponse()
$reader = New-Object IO.StreamReader $response.GetResponseStream()
$reader.ReadToEnd()
$reader.Close()
$response.Close()
}
#SET FOLDER PATH
$folderPath= $ftp + "/" + $folder + "/"
$Allfiles=Get-FTPDir -url $folderPath -credentials $credentials
$files = ($Allfiles -split "`r`n")
$files
$webclient = New-Object System.Net.WebClient
$webclient.Credentials = New-Object System.Net.NetworkCredential($user,$pass)
$counter = 0
foreach ($file in ($files | where {$_ -like "*.txt"})){
$source=$folderPath + $file
$destination = $target + $file
$webclient.DownloadFile($source, $target+$file)
#PRINT FILE NAME AND COUNTER
$counter++
$counter
$source
}
我試着像遞歸獲取-ftpchilditem功能的模塊PSFTP模塊的功能,但它不是爲我工作的例子。
請幫我在這裏從FTP服務器的根文件夾和子文件夾中獲取文件到本地系統。
感謝Junaid的快速重播...這是非常有用的。 – cooluser505
嗨Junid請看看下面的情景,我提到並幫助我...在此先感謝 – cooluser505