cyanno 0 Geschrieben 6. September 2018 Melden Teilen Geschrieben 6. September 2018 Hallo Zusammen, eine kleinere Frage (wo ich seit mehere Stunden vergebens recherchiere..): Wie kann ich das Datum von "heute - x" Tage als Variable bekommen? Gerne hätte ich eine Batchdatei geschrieben damit ich angelegte Ordner (z.B 20180903) automatisch löschen kann. Wäre nett hier ein kleine Hilfe zu erhalten VG, Cyanno Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 6. September 2018 Melden Teilen Geschrieben 6. September 2018 Nutze die Powershell. (get-date).AddDays(-5) Für dein Beispiel: get-date -f "yyyyMMdd" (get-date).AddDays(-5) Zitieren Link zu diesem Kommentar
cyanno 0 Geschrieben 6. September 2018 Autor Melden Teilen Geschrieben 6. September 2018 Hallo Dukel, zuerst mal recht herzlichen Dank für diese Antwort. Das mit get-date klappt wunderbar! Aber als absoluter Anfänger und (sehr) gelegentlicher programmierer folgende Fragen: Muss ich jetzt für das erstellen einer Batchdatei (zum automatisch löschen einige Ordner in meinem NAS) innerhalb von Powershell bleiben (und auch hier wieder grundlegende Progammiersprache lernen) oder kann ich diese Variable in der cmd Ebene Übernehmen? Zitieren Link zu diesem Kommentar
NilsK 2.937 Geschrieben 6. September 2018 Melden Teilen Geschrieben 6. September 2018 (bearbeitet) Moin, du kannst in der PowerShell natürlich auch direkt Ordner löschen und da die Variable einsetzen. Das dürfte erheblich einfacher sein, als den Wert der Variablen irgendwie auf die CMD-Ebene zu bekommen. Wenn es CMD sein soll, könntest du dir die Rechnerei sparen und robocopy zweckentfremden. Dort kannst du ein Dateialter angeben und die Daten z.B. nach NUL verschieben. Gruß, Nils bearbeitet 6. September 2018 von NilsK Zitieren Link zu diesem Kommentar
cyanno 0 Geschrieben 6. September 2018 Autor Melden Teilen Geschrieben 6. September 2018 Hallo Dukel und Nilsk, vielen Dank für diese "Anschubserei". Dann werde ich mich mal etwas intensiver mit Powershell auseinandersetzen. A Propos: Mit diese 2 Powershell-Sätze komme ich dann doch gut klar: $folder=get-date -f "yyyyMMdd" (get-date).AddDays(-2) $LogPath = "\\Diskstation\Kameras\Cam5\$folder" Nicht zuletzt weil ich dann hoffentlich eine fertige Batchdatei direkt im Crontab meines NAS-LW (Synology) ausführen kann. VG, Cyanno Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 6. September 2018 Melden Teilen Geschrieben 6. September 2018 Da ist die Frage ob die Crontab von Synology Powershell kann. Evtl. musst du das dort anders machen. Zitieren Link zu diesem Kommentar
cyanno 0 Geschrieben 6. September 2018 Autor Melden Teilen Geschrieben 6. September 2018 was dann meine letzte Frage war, muss mich halt mal "durchgoogeln" :) VG, Cyanno Zitieren Link zu diesem Kommentar
Nobbyaushb 1.471 Geschrieben 6. September 2018 Melden Teilen Geschrieben 6. September 2018 Als remote Powershell gegen einen Windows-Server könnte das klappen, habe ich auch noch nie versucht... Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 6. September 2018 Melden Teilen Geschrieben 6. September 2018 Um Dateien zu löschen braucht es keine Remote Powershell, das geht mit der normalen Powershell. Der TO möchte diesen Job aber auf der Synology laufen lassen. Zitieren Link zu diesem Kommentar
NilsK 2.937 Geschrieben 6. September 2018 Melden Teilen Geschrieben 6. September 2018 Moin, vor 1 Stunde schrieb cyanno: Nicht zuletzt weil ich dann hoffentlich eine fertige Batchdatei direkt im Crontab meines NAS-LW (Synology) ausführen kann. das wage ich zu bezweifeln, da läuft ja kein Windows. Gruß, Nils Zitieren Link zu diesem Kommentar
cyanno 0 Geschrieben 6. September 2018 Autor Melden Teilen Geschrieben 6. September 2018 vor 18 Minuten schrieb NilsK: das wage ich zu bezweifeln, da läuft ja kein Windows. Ja, da sind meine Zweifel dann doch berechtigt. Werde mich dann mal in Linux-Foren weiter schlaumachen! VG, Cyanno Zitieren Link zu diesem Kommentar
Dobi 11 Geschrieben 6. September 2018 Melden Teilen Geschrieben 6. September 2018 Für Files (nicht Folder) älter als 7 Tage verwende ich das in einem cronjob: find /pfad/* -mtime +7 -exec rm {} \; Zitieren Link zu diesem Kommentar
cyanno 0 Geschrieben 6. September 2018 Autor Melden Teilen Geschrieben 6. September 2018 Hallo Dobi, sowas ähnliches habe ich auch: 0 0 * * * root find /volume1/Leo -mtime +14 -a -name, rec011*.asf | xargs rm -f Funktioniert aber nur mit "statische" Ordner. LG, Cyanno 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.