Vraag : Hoe te om Alle dossiers van het PIT van een Folder die van FTP over te brengen Powershell gebruiken

Ik gebruik de volgende code proberen om aan een gelijkaardige website het programma te openen gebruikend Powershell om tot een plaats van FTP toegang te hebben benieuwd was hoe u alle dossiers binnen a specidied folder aan een lokale bestemming zou overbrengen. Bijvoorbeeld, hoe u alle pitdossiers, ongeacht naam en grootte overbrengt, gebruikend Powershell om tot de plaats van FTP toegang te hebben en de dossiers over te brengen naar mijn lokaal apparaat als de plaats van FTP niet lokaal aan uw machine is. Ik heb onderzocht hoe te om één enkel dossier over te brengen gebruikend Powerscript en met de voorbeeld hieronder code op de proppen gekomen. Hoe zou ik/wijzigen verander deze code om voor alle dossiers in de folder te kopiëren toe te staan? Naast deze kwestie, heb ik ook de foutenmelding „$readlength = $responsestream ontvangen. Lees (<<<< $readbuffer, 0.1024)
+ u kan geen methode op een ongeldig-getaxeerde uitdrukking roepen.“ Zou wat deze foutenmelding om, gebruikend gelijkaardige code aan de volgende code veroorzaken te verschijnen?

$sourceuri = „ ftp://ftp.secureftp-test. com/hamlet.zip "
$targetpath = „C:\hamlet.zip "
$username = „test "
$password = „test "

# leidt tot een voorwerp FTPWebRequest om de verbinding aan FTP te behandelen server
$ftprequest = [System.Net.FtpWebRequest] :: cre�ër ($sourceuri)

# plaatsen de het netwerkgeloofsbrieven van het verzoek voor een voor authentiek verklaarde connection
$ftprequest. Van geloofsbrieven =
het nieuw-Voorwerp System.Net.NetworkCredential ($username, $password)

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

# verzendt het FTP- verzoek naar server
$ftpresponse = $ftprequest.GetResponse ()

# krijgt een downloadstroom van de server response
$responsestream = $ftpresponse.GetResponseStream ()

# cre�ërt het doeldossier op het lokale systeem en de download buffer
$targetfile = nieuw-Voorwerp IO.FileStream ($targetpath, [IO.FileMode] :: Cre�ër)
[byte []] $readbuffer = de byte []/># lijn 1024

do {
$readlength = $responsestream. Lees ($readbuffer, 0,1024)
$targetfile. Schrijf ($readbuffer, 0, $readlength)
}
while ($readlength - Ne 0)

$targetfile.close ()

Antwoord : Hoe te om Alle dossiers van het PIT van een Folder die van FTP over te brengen Powershell gebruiken

Zo gebruikend de code van die verbinding:

[leegte] [Reflection.Assembly]:: LoadFrom („C:\IndyNet - dagelijks-20051007 \ Indy.Sockets.dll“)
$ftp = nieuw-voorwerp Indy.Sockets.FTP
$ftp. Maak los ()
$ftp. Gastheer = $ftphost
$ftp. Gebruikersbenaming = $username
$ftp. Wachtwoord = $password
$ftp. Verbind ()
$ftp. Passive=$true;

WC = nieuw-voorwerp System.Net.WebClient
$wc. Geloofsbrieven = nieuw-Voorwerp System.Net.NetworkCredential ($strFtpUser, $strFtpPass)
$ls = nieuw-voorwerp System.Collections.Specialized.StringCollection;
$ftp. Lijst ($ls, "", $true);
foreach ($file in $ls) {
   „Downloadend {0} in {1}.“ - F $sourceFileName, $targetDir;
    $ftp. Krijg ($sourceFileName, ($targetDir + $sourceFileName), $true, $false);
}
Andere oplossingen  
 
programming4us programming4us