Jump to content

Dateien sichern, zippen und das in geordneter Reihenfolge


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo,

der Titel mag etwas verwirrend sein, aber ich habe folgende Anforderung. Muss dazu sagen, ich kenn mich beim Scripting nicht wirklich aus, Normal suche ich mir zusammen was ich brauche, hier ist es aber für mich etwas komplexer und ich komme nicht weiter.

Es werden am Tag automatisch mehrmals Dateien erzeugt, die dann dann auch immer wieder überschrieben werden.

Diese Dateien sollen jetzt mit Zeitstempel im Namen an einen anderen Ort geschrieben werden.

Das funktioniert schon hiermit.

CURDATE.EXE
CALL CURDATE.BAT
COPY \\server\Folder\File.dat D:\Backup\Folder\File_%DATUM_ZEIT%.dat

CURDATE.EXE liefert den Zeitstempel für den Namensstring.

 

So, jetzt habe ich am Ende des Tages in jedem Ordner 4-10 Files. Dort möchte ich das neueste File nehmen und zippen, damit es weniger Platz wegnimmt und nochmal gesondert aufgehoben werden kann. Die anderen Files werden wieder gelöscht.

 

Habe zwar schon bisschen was gefunden, das hat aber noch nicht so funktioniert. Zippen mit 7-Zip, aber wie das letzte File nehmen?

"C:\Programme\7-Zip\7Z.EXE" a -mmt4 -t7z D:\ARCHIV\FOLDER\FILE_%DATUM_ZEIT%.7Z D:\BACKUP\FOLDER\LASTFILE.dat -r -m0=LZMA2 :x=9 :d=1024m :s=on

Theoretisch macht er es ja so, wenn ich nen expliziten Namen angebe. Aber wie bekomme ich es hin, dass er die letzte erzeugte Datei nimmt?

 

Zweites Problem ist, dass es nicht nur 1 Verzeichnis ist, sondern am Ende ca. 30 verschiedene Verzeichnisse mit je 4-10 Files pro Tag.

 

Jetzt ist natürlich die Frage, wenn ich alle gleichzeitig zippe, ob das gutgeht. Die Files reichen von paar MB bis zu 40GB.

 

Ich würde gerne eines nach dem anderen zippen. Gibts da ne Möglichkeit zu sagen. Zippe File1, wenn fertig, zippe File2 usw.

 

Danke schon mal fürs Lesen und für hoffentlich hiflreiche Antworten :D

Link zu diesem Kommentar

Hi,

 

ich würde dir hier die PowerShell ans Herz legen:

Gruß

Jan

 

P.S.: Ich würde auch den ersten Part ("Mit Zeitstempel wegkopieren") in PowerShell überführen.

bearbeitet von testperson
Link zu diesem Kommentar

Also ich hatte jetzt mal Zeit mich damit zu beschäftigen.

Habt Recht, Powershell ist das Tool der Wahl :D

Habe jetzt alle Anforderungen am laufen, bis auf das Verschieben der letzten Dateinen. Kann es zwar mit je einem Einzeiler, aber das geht doch bestimmt in einem Statement.

gci \\server\backup\folder1\ -File | sort LastWriteTime -Desc | Select -First 1 | Copy-Item -Destination \\server\backup\000_Archiv -Force

Damit kopiere ich immer die letzte Datei in den 000_Archiv Ordner. Allerdings hab ich im Moment das Statement halt so oft drin, wie Ordner. Habs bisher nicht hinbekommen, wie schreibt man das dann?

Link zu diesem Kommentar
vor 1 Stunde schrieb MrMojoRisin666:

Habt Recht, Powershell ist das Tool der Wahl :D

Gut erkannt.  ;-) 

vor 1 Stunde schrieb MrMojoRisin666:

mit je einem Einzeiler, aber das geht doch bestimmt in einem Statement.

Hier gleich noch eine dringende Empfehlung für Deine weitere "Powershell-Karriere". Bitte in Scripten und auch hier in Foren nicht alles in mit Einzeilern und so kruz wie's geht abhandeln!! Das macht eventuell auf der Konsole Sinn, wenn Du einfach nur eine Ausgabe brauchst. In Scripten und ganz besonders, wenn auch andere diese Scripte später eventuell benutzen und, wenn nötig, anpassen und erweitern sollen, solltest Du die Befehle so ausführlich und deklarativ schreiben, wie es geht. 

Dein Einzeiler würde so viel leichter/schneller verständlich sein:

Get-ChildItem -Path '\\server\backup\folder1' -File | 
    Sort-Object -Property LastWriteTime -Descending | 
        Select-Object -First 1 | 
            Copy-Item -Destination '\\server\backup\000_Archiv' -Force

Vielleicht liest Du Dir bei Gelegenheit mal den Best-Practice and Style Guide durch.  

  • Like 1
  • Danke 1
Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...