gelöst Powershell: FTP Directorylisting
Hi
Ich habe Probleme ein PS Script zu erstellen, dass mir eine Datei von einem FTP Server herunter lädt.
Und zwar kriege ich die Datei aber nur, wenn ich den Dateinamen vorher kenne, arbeite ich mit Wildcard krieg ich nen Fehler,
den Filenamen mit ls oder so anzeigen schaff ich nicht...
und hier brauche ich Hilfe.
Ich möchte/muss den Filename vor dem Download heruasfinden ala dir *.xml voila Filename.
Was ich bisher zustande gebracht habe.
Hier hänge ich beim URI Aufruf den exakten Filenamen an aber ich will den ja nicht jedesmal vorher naschauen, es soll ja automatisch gehen.
Ich stell mir jetzt so zwei Varianten vor, einmal: nimm einfach alles was auf .XML endet (*.XML) oder ich finde irgendwie den Filenamen zuerst heraus, schreib ihn in eine Variable und erstelle so einen Aufruf.
Aber Wildcards scheint er nicht zu mögen und gibt einen Fehler beim URI Aufruf aus:
Und wie ich mit webclient Objekt zu einem Listing komme finde ich nicht heraus, kann mir jemand einen Hinweis geben?
Thx pab
Ich habe Probleme ein PS Script zu erstellen, dass mir eine Datei von einem FTP Server herunter lädt.
Und zwar kriege ich die Datei aber nur, wenn ich den Dateinamen vorher kenne, arbeite ich mit Wildcard krieg ich nen Fehler,
den Filenamen mit ls oder so anzeigen schaff ich nicht...
und hier brauche ich Hilfe.
Ich möchte/muss den Filename vor dem Download heruasfinden ala dir *.xml voila Filename.
Was ich bisher zustande gebracht habe.
01.
$UserName = 'Der_User?
02.
$Password = 'Das_Passwort''
03.
04.
05.
$RemoteFileName = '/Pfad/EinExport_Laufnummer_2016-03.xml'
06.
07.
$ServerName = 'ftp.derserver.tld'
08.
09.
$webclient = New-Object System.Net.WebClient
10.
$webclient.Credentials = New-Object System.Net.NetworkCredential($UserName, $Password)
11.
12.
13.
$uri = New-Object System.Uri("ftp://$ServerName/$RemoteFileName")
14.
15.
16.
#$webclient.DownloadFile($uri, $LocalFilePath)
17.
Ich stell mir jetzt so zwei Varianten vor, einmal: nimm einfach alles was auf .XML endet (*.XML) oder ich finde irgendwie den Filenamen zuerst heraus, schreib ihn in eine Variable und erstelle so einen Aufruf.
Aber Wildcards scheint er nicht zu mögen und gibt einen Fehler beim URI Aufruf aus:
01.
Ausnahme beim Aufrufen von "DownloadString" mit 1 Argument(en): "Der Remoteserver hat einen Fehler zurückgegeben: (550) Datei nicht
02.
verfügbar (z.B. nicht gefunden oder kein Zugriff)."
03.
In Das Skript.ps1:18 Zeichen:1
04.
+ $webclient.downloadstring($uri)
05.
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
06.
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
07.
+ FullyQualifiedErrorId : WebException
Thx pab
3 Antworten
- LÖSUNG colinardo schreibt am 06.04.2016 um 11:53:16 Uhr
- LÖSUNG pablovic schreibt am 06.04.2016 um 12:39:55 Uhr
- LÖSUNG colinardo schreibt am 06.04.2016 um 12:58:07 Uhr
- LÖSUNG pablovic schreibt am 06.04.2016 um 12:39:55 Uhr
LÖSUNG 06.04.2016, aktualisiert um 12:19 Uhr
Hallo @pablovic,
machst du mit der ListDirectory Request-Methode, hier eine einfache Funktion zum Auflisten von bestimmten Dateien eines Verzeichnisses mit Wildcards.
Als Ausgabe erhältst du dann ein Array aus den gefundenen Dateinamen.
Weitere FTP-Funktionen zum Download und Upload findest du von mir auch hier in diesem Post:
https://www.administrator.de/forum/powershell-ftp-exe-298396.html#commen ...
Grüße Uwe
machst du mit der ListDirectory Request-Methode, hier eine einfache Funktion zum Auflisten von bestimmten Dateien eines Verzeichnisses mit Wildcards.
01.
function List-FTPFiles([string]$url,$username,$password){
02.
try{
03.
$request = [System.Net.FtpWebRequest]::Create($url)
04.
$request.Method = [System.Net.WebRequestMethods+FTP]::ListDirectory
05.
$request.Credentials = New-Object System.Net.NetworkCredential($username,$password)
06.
$response = [System.Net.FtpWebResponse]$request.GetResponse()
07.
[System.IO.Stream]$stream = $response.GetResponseStream()
08.
$reader = new-object System.IO.StreamReader($stream)
09.
$list = $reader.ReadToEnd() -split "`n"
10.
$stream.Close();$response.Close();$reader.Close()
11.
$stream.Dispose();$response.Dispose();$reader.Dispose()
12.
return $list
13.
}catch{
14.
throw $_.Exception.Message
15.
}
16.
}
17.
List-FTPFiles -url 'ftp://ftp.domain.de/ordner/*.xml' -username 'max.muster' -password 'GEHEIM'
Weitere FTP-Funktionen zum Download und Upload findest du von mir auch hier in diesem Post:
https://www.administrator.de/forum/powershell-ftp-exe-298396.html#commen ...
Grüße Uwe
LÖSUNG 06.04.2016 um 12:39 Uhr
Hi Uwe
Grosses Kino diese Funktion, danke.
Ich hab den Thread auch gesehen, hab aber die List Funktion vermisst.
Damit und den anderen Funktionen sollte ich ziemlich weit kommen, auch wenn sie mein Verständnis weit überschreiten.
Thx a lot
Grosses Kino diese Funktion, danke.
Ich hab den Thread auch gesehen, hab aber die List Funktion vermisst.
Damit und den anderen Funktionen sollte ich ziemlich weit kommen, auch wenn sie mein Verständnis weit überschreiten.
Thx a lot
LÖSUNG 06.04.2016, aktualisiert um 12:58 Uhr
Keine Ursache.
Wenns das dann war, den Beitrag bitte noch auf gelöst setzen. Merci.
Wenns das dann war, den Beitrag bitte noch auf gelöst setzen. Merci.
Ähnliche Inhalte
Neue Wissensbeiträge
Heiß diskutierte Inhalte