desprueht 0 Geschrieben 14. August 2013 Melden Teilen Geschrieben 14. August 2013 Hallo, ich bin neu hier und auch ein Neuling in Sachen Powershell. Ich habe mir einen Script geschrieben, um Dateien auf und von meiner Netzwerkfestplatte per FTP zu laden. Es sind immer die selben Dateien und es wird von mehreren Leuten ausgeführt. Das funktioniert auch alles Tadellos, ich will lediglich verhindern, das jemand Dateien hoch lädt, die älter sind als die sich auf dem Server befinden. Deswegen brauche ich eine Datumsprüfung. Wie ich Dateien in einem Ordner auf meiner Festplatte prüfen kann habe ich schon raus gefunden, deswegen habe ich versucht eine der Dateien vom Server zu laden, dann zu vergleichen und dementsprechend wieder hochzuladen oder eben nicht. Leider wird beim Download einer Datei alle Daten wie Erstelldatum, Änderungsdatum und letzer Zugriff auf den Tag des Downloads geändert und kann es somit nicht vergleichen. Gibt es eine Möglichkeit, Verbindung zum FTP aufzubauen, Datum vergleichen und dann die Meldung zu Bestätigen: "Die Datei auf dem Server ist neuer, trotzdem hochladen (J) oder (N)?" Ich lade die Dateien folgendermaßen hoch: $File = "$env:USERPROFILE\Documents\test.xml" $ftp = "ftp://test.selfhost.bz/test/test.xml" $webclient = New-Object System.Net.WebClient $uri = New-Object System.Uri($ftp) Habe es aber auch schon mit FTP.exe realisiert, also wäre es egal wie ich es mache. open ftp.test.selfhost.bz user password cd test get test.xml .\test\test.xml bye Vielleicht kann mir ja jemand ein Beispiel aufzeigen, wie ich die ganze Sache umsetzen kann! Vielen Dank schon mal für Eure Mühen!! Gruß desprueht Zitieren Link zu diesem Kommentar
desprueht 0 Geschrieben 15. August 2013 Autor Melden Teilen Geschrieben 15. August 2013 (bearbeitet) Hallo, ich habe mir nun überlegt, dass ich mit FTP auf den Server zugreifen kann, also einloggen und anschließend erhalte ich per DIR das Datum der Datei. Das sieht quasi so aus: test.ps1 ftp.exe -s:ftp.ftp ftp.ftp open ftp.unbekannt.selfhost.bz benutzername password cd pools/A/A0/Test/ dir test.xml disconnect bye Somit habe ich irgendwann im Powershell das Datum stehen von der Datei auf dem Server. ftp> open ftp.unbekannt.selfhost.bz Verbindung mit ftp.unbekannt.selfhost.bz wurder hergestellt. 220 ProFTPD 1.3.3 Server <Storage> [111.111.111.11] Benutzer <ftp.unbekannt.selfhost.bz:<none>>: 331 Password required for user 230 User user logged in ftp> ftp> cd pools/A/A0/test/ 250 CWD command successful ftp> ftp> dir test.xml 200 PORT command successful 150 Opening ASCII mode data connection for file list -rw-rw-rw- 1 nobody nobody 6302 Aug 11 18:44 test.xml 226 Trnasfer complete FTP: 68 Bytes empfangen in 0,00Sekunden 68,00KB/s ftp> ftp> disconnect 221 Godbye. ftp> bye -rw-rw-rw- 1 nobody nobody 6302 Aug 11 18:44 test.xml Kann mir nun einer sagen, wie ich das auslesen und verwenden kann um somit zu vergleichen? Würde mich über Hilfe sehr freuen! bearbeitet 15. August 2013 von desprueht Zitieren Link zu diesem Kommentar
Sanches 22 Geschrieben 15. August 2013 Melden Teilen Geschrieben 15. August 2013 Hallo, willst du dein Vorhaben (sprich den Uploadvorgang) im Hintergrund laufen lassen? Oder warum willst du speziell dies über die PowerShell nutzen? Falls dein Vorhaben vom User selbst immer angestoßen wird, nutze doch einfach z.B. Filezilla. Dabei kannst du z.B. im Programm Voreinstellungen hinsichtlich des Uploads hinterlegen. Alternativ wird der User, wenn eine Datei vorhanden ist, entsp. darauf hingewiesen und der User kann die Aktion selbst entscheiden. Das würde ja auch deine "Funktion" mit der Ja/Nein Abfrage abfangen. Gruß Sanches Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.