WinRar Datei aus einem Ordner regelmäßig automatisch erstellen lassen?

MikeMüller

Banned
Registriert
Jan. 2014
Beiträge
1.340
Ich möchte zur Datensicherung regelmäßig aus einem normalen Windows Ordner mit verschiedenen Dateien automatisch eine WinRar Datei erstellen lassen.

Kann auch gerne ein anderes Pack Programm sein.

Aber das ganze soll automatisch auf dem Server im Hintergrund laufen. Wie macht man das am besten?
 
Machs mit dem Scripting Host von Windows !
 
Am einfachsten wäre es eine .sh/.bat Datei zu schreiben und diese Datei dann regelmäßig aufzurufen. (mit der Aufgabenplanung z.B. regelmäßig ausführen)

Einfach eine Datei mit der Endung .bat erstellen mit folgenden Inhalt:
"C:/Pfad_zu_deiner_Winrar_EXE.exe" a –r C:/Datei.rar C:/Pfad_zu_deinem_Ordner
 
WinRAR besitzt ein Command Line Interface namens RAR.EXE mit zahlreichen Parametern und Optionen.

Über den Aufgabenplaner kann man das auch im Hintergrund laufen lassen.
 
Ich weise nur nebenher drauf hin, dass ich die Zieldatei mit Datum im Namen (evtl. Uhrzeit gleich mit) versehen würde - außer ich will explizit immer die selbe Datei auffrischen.
Je nach Größe und Platz (ich sichere so Mailkonten) musste ich etwas fummeln um 19 Sicherungsstufen zu haben bei der Nummer 19 verworfen wird, alles hochrückt und eine Nummer 1 hinzukommt. Seltsam, dass kein normales Backup- oder Komprimier-Tool so was aus dem Ärmel zu schütteln weiß.

CN8
 
Das mit Datum ist eigentlich mit %date% locker möglich wenn du dir das passende Script erstellst.
Postfach.Meier.%date%.rar z.b.
 
Ich krame den alten Thred hier mal hoch, weil ich ein ähnliches Projekt vor habe.

Ich möchte "mehrere" Ordner, nicht nur Unterordner, in einem RAR-Archiv sichern.
Wie sieht dann der Befehl in der .bat aus?
"C:/Pfad_zu_deiner_Winrar_EXE.exe" a –r C:/Datei.rar C:/Pfad_zu_deinem_Ordner
Wie ist mit dem Befehl @listfiles umzugehen?

Dann würde das ganze gerne auf einem Netzlaufwerk sichern und die Aufgabe nur ausführen lassen, wenn das Laufwerk auch verfügbar ist, aber trotzdem in einem festen Intervall.
Also wenn Lauferk nicht da, einfach nicht ausführen.

Und als"Schmankerl" die erzeugte .rar-Datei noch mit einem Passwort versehen...
Hab mich schon ein bisschen damit beschäftigt und der Parameter -p[password] setzt wohl ein Passwort welches dann aber lesbar im Skript erscheint.

Kann mir da jemand behilflich sein?
 
Also ich habe es jetzt soweit hinbekommen und bei direktem manuellen Start läuft es soweit durch.
An der Aufgabenplanung scheiterts noch, liegt aber wohl daran, dass ich das Intervall auf jeden ersten Samstag im Monat gelegt habe.
Wenn ich es über die Aufgabenplanung manuell ausführe, dann schließt sich das Fenster nach der Passworteingabe wieder.

Nächste Aufgabeist, das Ganze in VB umzusetzten, so dass ich das Passwort auf einer Oberfläche eingeben kann und da auch eine Progress-Bar angezeigt wird. :)
 
Archon2k5 schrieb:
Dann würde das ganze gerne auf einem Netzlaufwerk sichern und die Aufgabe nur ausführen lassen, wenn das Laufwerk auch verfügbar ist, aber trotzdem in einem festen Intervall.
Also wenn Lauferk nicht da, einfach nicht ausführen.
Das Intervall ist durch den Task vorgegben. Aber soll der Task sich dann selber ändern, wenn das Ziellafwerk gerade nicht erreichbar ist?

Allgemein: das Archivieurngsprogramm nicht direkt ausführen, sondern über ein Powershell-Script (Batch mag auch irgendwie gehen). Dort vor dem Start des Archivieurngsprogramms prüfen, ob das Laufwerk für den User auch schreibend erreichbar ist, der den Task ausführt.

Was WinRAR Optionen betrifft, kann ich nichts sagen. Für mich ist WinRAR, wenn man nicht zwingend ganz gewisse Optionen davon nutzen will (mir fällt unter Windows, MacOS und Linux exakt eine ein), schlicht Geldverschwendung. Auch eine Lifetime-Lizenz gilt nur für eine Instanz und niemals auf meinem Arbeitsrechner. Muss aber natürlich jeder selber wissen.

Progress-Bar, PW-Eingabe und Aufgabenplanung? Das dürfte schonmal nur funktionieren, wenn immer genau ein User am PC arbeitet und das auch der User ist, unter dem der Task ausgeführt wird. Sinnvoll finde ich sowas nicht. Willst Du an jedem 1. Samstag im Monat (oder danach, wenn der PC Samstags nicht lief und Aufgabe passend geplant ist) von dem Fenster genervt werden?

Man kann natürlich das Backup als das wichtigste seiner IT-Welt ansehen und da man mit einem PC ja das Wichtigste immer zuerst macht (egal, was man gerade vor hat) gehen Backup und Security-Updates vor allem anderen durchgeführt.

Für mich wäre das nichts. Bei mir muss das Zeug entweder im Hintergrund laufen oder ich starte es selber (einfach bei jedem Shutdown des PCs).
 
gymfan schrieb:
Für mich wäre das nichts. Bei mir muss das Zeug entweder im Hintergrund laufen oder ich starte es selber (einfach bei jedem Shutdown des PCs).
Dann müsste ich aber beim Abschalten zu lange warten. Außerdem ziehe ich nur den Ruhezustand, richtig runtergefahrfen wird selten.


Aber bitte, mein Machwerk.
Gearbeitet wird in W:\Aktion G\ED\ (physisches Laufwerk) und eine Kopie in G:\Aktion G\ED\ (wieder physisches Laufwerk) abgelegt.
Die (erraten) neueren und älteren «Eigenen Dateien» weilen auf dem physischen Laufwerk K. Vor der Aktion werden (OK, die XLB ist überflüssig geworden) 2 wichtige Office-Files kopiert.
SET F=38 legt 38 Genrationen an [jajaja, waren vorher 19 und dann hab ich’s einfach verdoppelt…], das dauert also ein bisschen (s.o. mit dem Runterfahren 😉). Alles wird per Aufgabenplanung angestoßen, und zwar die VBS damit ich das als Instanz laufen lassen kann die mir nicht vor den Füßen rumhampelt. Batch ist hier mächtiger, effizienter als VBS.
ED-Dummy.7Z ist ein Leeres Archiv das einfach nur da sein muss evtl. Lücken auszufüllen. Pessimismus, und es hält die Zählung zusammen. Die Echos sind für den Fall, dass ich doch mal einen Blick in die Taskleiste werfen will.

EDStep.VBS
Code:
Dim WSHShell
Set WSHShell = WSCRIPT.CreateObject("WScript.Shell")
WshShell.Run """W:\Aktion G\ED\EDStep.bat""", 2, True

EDStep.bat
Code:
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
copy C:\Users\CN8\AppData\Roaming\Microsoft\Excel\Excel15.xlb "K:\Eigene Dateien\Excel" /y
copy C:\Users\CN8\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.XLSB "K:\Eigene Dateien\Excel\XLStart" /y
copy C:\Users\CN8\AppData\Roaming\Microsoft\Templates\Normal.dotm "K:\Eigene Dateien\Vorlagen" /y
set f=38
set /a x=%f%-1
for /l %%a in (!x!,-1,2) do (
 set b=%%a
 echo "W:\Aktion G\ED\ED-!b!.7Z"
 if not exist "W:\Aktion G\ED\ED-!b!.7Z" copy "W:\Aktion G\ED\ED-Dummy.7Z" "W:\Aktion G\ED\ED-!b!.7Z"
)
echo DEL W:\Aktion G\ED\ED-%f%.7Z
erase /f "W:\Aktion G\ED\ED-%f%.7Z"
echo DEL G:\Aktion\ED\ED-%f%.7Z
erase /f G:\Aktion\ED\ED-%f%.7Z
for /l %%a in (!x!,-1,1) do (
 set /a b=%%a+1
 echo REN W:\Aktion G\ED\ED-%%a.7Z ED-!b!.7Z
 rename "W:\Aktion G\ED\ED-%%a.7Z" ED-!b!.7Z
 echo REN G:\Aktion\ED\ED-%%a.7Z ED-!b!.7Z
 rename G:\Aktion\ED\ED-%%a.7Z ED-!b!.7Z
)
"C:\Program Files\7-Zip\7z.exe" a "W:\Aktion G\ED\ED-1.7Z" "K:\Eigene Dateien\*" -r -wk:\aktion -ssw -mx=9
echo COPY W:\Aktion G\ED\ED-1.7Z G:\Aktion\ED\ED-1.7Z
copy "W:\Aktion G\ED\ED-1.7Z" G:\Aktion\ED\ED-1.7Z
ENDLOCAL
 
cumulonimbus8 schrieb:
Dann müsste ich aber beim Abschalten zu lange warten.
Warum wartet man beim Backup vor dem PC, wenn man weiss, dass dieses zuverläsig funkioniert? Ich warte dabei nie persönlich vor dem PC. Batch-File starten, das Backup wird erstellt, auf das NAS kopiert und der PC zuverlässig runter gefahren. Das ist bei mir der einzige Zeitpunkt, zu dem ich garantiert den PC niemals mehr persönlich nutzen möchte.

cumulonimbus8 schrieb:
Außerdem ziehe ich nur den Ruhezustand, richtig runtergefahrfen wird selten.
Ob der Batch am Ende ein "shutdown" oder ein "rundll32" aufruft, ist egal. Aber ich verzichte schon immer auf die 1-.2 Sekunden Bootbeschleunigung durch ein suspend to disk (an einigen Win-Tablets ist das anders, da läuft aber sowieso nichts, was in ein Backup gehört).

Aber natürlich jeder, wie er will. Ich würde hier jednefalls kein VB Programm schreiben sondern allendfalls ein Poweshell-Script.
 
gymfan schrieb:
Warum wartet man beim Backup vor dem PC,
Man wartet auf den Abschluss ejner «Beim-Runterfahren-Aktion» bis diese geendet hat und dann das System runterfährt. Darum ging es. Bei mir läuft das schön nebenbei

gymfan schrieb:
Ob der Batch am Ende ein "shutdown" oder ein "rundll32" aufruft, ist egal.
Und ob das absolut nicht egal ist!
Ich habe keine Zeit und keine Lust so eine Aktion beim »Ausschalten«, Tagesende, abzubummeln und dumm rumzustehen!

CN8
 
Zurück
Oben