Bib 10 Geschrieben 17. Februar 2010 Melden Teilen Geschrieben 17. Februar 2010 Hallo, ich habe folgendes Problem: Ich lade täglich mittels GetRight eine Online-Ausgabe unserer Tageszeitung (PDF) per Direktlink herunter. Diese Datei wird dann auf meinem PC unter folgendem Format abgespeichert: zeitung_jjjj_mm_tt.pdf (z.B. zeitung_2010_02_17.pdf) Das funktioniert auch soweit ganz gut. Nun möchte ich die PDF-Datei aber täglich auf einen FTP-Server hochladen, damit ich auch von ausserhalb auf die jeweils aktuelle Ausgabe zugreifen kann. Und damit der FTP-Server nicht immer manuell gelöscht werden muss, soll die aktuelle Ausgabe dann einfach in zeitung.pdf umbenannt und täglich überschrieben werden. Habs mit xcopy probiert, aber da klappt das mit dem aktuellen Datum nicht so recht. Kenn mich mit Batch-Datein und Scripting auch nicht wirklich aus. Mein Ansatz war, die aktuelle Ausgabe täglich vom Ablageverzeichnis in ein extra Verzeichnis zu kopieren und dann mittels ftp.exe hochzuladen, anschließend den Inhalt des lokalen Ordner wieder zu löschen. Der upload mittels ftp.exe funktioniert auch - die Datei wird dann unter zeitung.pdf auf dem FTP-Server abgelegt. Es liegt jetzt nur noch daran, die jeweils aktuelle Ausgabe auszuwählen. Direkt mit ftp.exe geht die Auswahl der aktuellen Ausgabe ja nicht, oder? Kann mir hier jemand weiterhelfen? (System auf dem es laufen soll: Windows XP Prof oder Windows 2003 Prof) Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 17. Februar 2010 Melden Teilen Geschrieben 17. Februar 2010 Powershell: $today = get-date -f yyyy_MM_dd copy-item "zeitung_$today.pdf" zeitung.pdf -force # ftp.exe P.S. das extraverzeichnis wird nicht benötigt. P.P.S. ich würde ein anderes Programm wie ftp.exe nehmen. Z.B. lftp Zitieren Link zu diesem Kommentar
Bib 10 Geschrieben 17. Februar 2010 Autor Melden Teilen Geschrieben 17. Februar 2010 Hallo, danke für die Antwort. Also mit powershell meinst du die cmd Eingabeaufforderung von Windows XP? (Start - Ausführen - cmd) lftp gibts doch nur für Linux, oder nicht? Für Windows hab ich nichts gefunden. Was kann lftp besser als ftp.exe? $today = get-date -f yyyy_MM_dd copy-item "zeitung_$today.pdf" zeitung.pdf -force # ftp.exe Soll das in eine cmd-/bat-Datei? Ich will das mit dem Windows-Taskmanager dann täglich ausführen lassen. Wenn ich in der cmd-Datei xcopy /d:%date% nehme, dann geht das nicht, weil auf deutschen Systemen tt.mm.jjjj und nicht wie gefordert dd-mm-yyyy genutzt wird. xcopy kanns aber nur mit "-" als Trennzeichen. Zitieren Link zu diesem Kommentar
Necron 71 Geschrieben 17. Februar 2010 Melden Teilen Geschrieben 17. Februar 2010 Also mit powershell meinst du die cmd Eingabeaufforderung von Windows XP? (Start - Ausführen - cmd) cmd => Command Line ist nicht gleich die Powershell, diese muss extra unter XP installiert werden. Google hilft dir weiter! Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 17. Februar 2010 Melden Teilen Geschrieben 17. Februar 2010 Hallo, danke für die Antwort. Also mit powershell meinst du die cmd Eingabeaufforderung von Windows XP? (Start - Ausführen - cmd) Wie schon geschrieben, nein. Ist ein extra Download. lftp gibts doch nur für Linux, oder nicht? Für Windows hab ich nichts gefunden. Was kann lftp besser als ftp.exe? Ich dachte es gibt einen CLI Client mit dem Namen lftp für Windows. das was ich meinte ist besser auf Scripting ausgelegt als ftp.exe. $today = get-date -f yyyy_MM_dd copy-item "zeitung_$today.pdf" zeitung.pdf -force # ftp.exe Soll das in eine cmd-/bat-Datei? Ich will das mit dem Windows-Taskmanager dann täglich ausführen lassen. Jein. Erst mal Powershell installieren, dann kannst du das damit ausführen. Wenn ich in der cmd-Datei xcopy /d:%date% nehme, dann geht das nicht, weil auf deutschen Systemen tt.mm.jjjj und nicht wie gefordert dd-mm-yyyy genutzt wird. xcopy kanns aber nur mit "-" als Trennzeichen. Deswegen nehme ich Powershell. Ist viel mächtiger als cmd. Zitieren Link zu diesem Kommentar
Bib 10 Geschrieben 17. Februar 2010 Autor Melden Teilen Geschrieben 17. Februar 2010 Habs jetzt am laufen. Powershell installiert. Hier mal meine ganzen Batch- und Script-Dateien: 1.) zeitung_kopieren.bat C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe D:\Admin\Batch\zeitung_kopieren.ps1 zeitung_kopieren.ps1 $today = get-date -f yyyy_MM_dd copy-item "D:\Ablage\Zeitungen\Zeitung-1\Zeitung-1_$today.pdf" "D:\Ablage\Zeitungen\aktuell\Zeitung-1.pdf" -force copy-item "D:\Ablage\Zeitungen\Zeitung-2\Zeitung-2_$today.pdf" "D:\Ablage\Zeitungen\aktuell\Zeitung-2.pdf" -force 2.) zeitung_upload.cmd ftp.exe -n -d -i -s:zeitung.ftp zeitung.ftp OPEN www.meine-domain.de USER benutzername passwort binary hash cd /docs/zeitung/ send "D:\Ablage\Zeitungen\aktuell\Zeitung-1.pdf" send "D:\Ablage\Zeitungen\aktuell\Zeitung-2.pdf" disconnect quit Die ganzen Scripts/Batch-Dateien werden täglich am morgen nacheinander abgearbeitet. Also es läuft soweit. Kenn mich mit diesem anderen ftp-Tool nicht aus. Wenn mir jemand da vielleicht noch behilflich sein könnte? Aber es läuft ja so auch? Wäre vielleicht nur schöner, wenn alles in einem einzigen Script abgearbeitet würde. Ich musste in der Powershell die policies ändern, damit das script ausgeführt werden konnte (Set-ExecutionPolicy RemoteSigned). Bleibt das jetzt immer so, auch nach einem Neustart oder muß ich da noch was einbauen? Wenn ja, wo? Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 17. Februar 2010 Melden Teilen Geschrieben 17. Februar 2010 Du kannst ftp.exe auch mit Powershell aufrufen. Und ja, die Execution Policy bleibt auch nach einem neustart. Prinzipell funktioniert das ja mit ftp.exe, aber andere CLI ftp Programme haben andere Vorteile, die evtl. bei dir nichts bringen. Wenn das bei dir läuft, lass es so. 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.