こんにちはすべて私はパワーシェルスクリプトに慣れています。私はルートディレクトリのすべてのファイルとFTPサーバのファイル名に基づいてサブフォルダ内のファイルをダウンロードしようとしています。私のパスは常にルートディレクトリを指し、ルートディレクトリはテキストファイルとサブフォルダを持っているので、サブフォルダにはテキストファイルが含まれています。FTPサーバからファイルを再帰的にダウンロード
私は、ftpサーバからローカルにダウンロードするテキストファイルを取得する例を見つけましたが、私が見つけた例では、ルートディレクトリからサブフォルダをスキャンしていないテキストファイルをダウンロードしています。ここで
私は再帰的には、Get-ftpchilditem機能のようなモジュールPSFTPモジュールの機能を試してみましたが、それは私のために働いていない私は
# $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
}
を試みた例です。
FTPサーバーのローカルフォルダーとサブフォルダーからローカルシステムにファイルを取得するのを手伝ってください。
ありがとうございました。これは非常に参考になります。 – cooluser505
こんにちはJunidここで私が言及し、私を助けて下のシナリオを見てください...事前に感謝 – cooluser505