Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Batch - Archiv überschreiben

Frage Entwicklung Batch & Shell

Mitglied: Dani

Dani (Level 5) - Jetzt verbinden

05.01.2007, aktualisiert 06.01.2007, 4294 Aufrufe, 13 Kommentare

Hallo zusammen,

ich schreibe zur Zeit einen kl. Batch, der bestimmte configs usw... sichert. Soweit funktioniert das Ganze auch. Erlegt jede Woche ein Archiv (name1, name2,usw). Doch wenn er bei 10 angekommen ist, soll er wieder das name1 überschreiben. Also ein ständiger Kreislauf.
OS ist Windows Server 2003 EE.
Warum ich das Ganze mache, ganz einfach uns "tolles" Backupprogramm hat manchmal einen Hänger. Somit habe ich mich entschlossen, dieses gegen ein paar Zeilen Batch zuersetzen und Geld zusparen.


Gruß
Dani
Mitglied: bastla
05.01.2007 um 18:05 Uhr
Hallo Dani!

Du könntest es so anlegen, dass Du (nachdem alle 10 Dateien erstellt wurden) jeweils die älteste .zip-Datei suchst, diese löschst und den frei gewordenen Dateinamen für die neue .zip-Datei verwendest - etwa so:
01.
echo off & setlocal 
02.
for /f %%i in ('dir D:\Sicherungen\*.zip /b /o-d') do set Letzte=%%i 
03.
del D:\Sicherungen\%Letzte% 
04.
move D:\Sicherungen\Temp\neu.zip D:\Sicherungen\%Letzte%
Verbesserungen/Verschönerungen (wie etwa noch eine Variable für den Pfad, Logging, etc) fallen Dir (oder jedenfalls Biber) dazu sicher noch ein.

Grüße
bastla
Bitte warten ..
Mitglied: Dani
05.01.2007 um 18:10 Uhr
Hi,
vielen Dank...so siehts schon mal gut aus.
Aber wenn ich das heute starte, legt er name1 an. So nun läuft es morgen wieder. Dann erkennt morgen name1 als ältestes Archiv!


Gruß
Dani
Bitte warten ..
Mitglied: bastla
05.01.2007 um 18:16 Uhr
Hallo Dani!

Etwas anschieben musst Du schon ... Die Skizze ist für den laufenden Betrieb gedacht (nachdem alle 10 Dateien erstellt wurden). Dann werden diese 10 Dateinamen in einer "Rotation" verwendet.

Grüße
bastla
Bitte warten ..
Mitglied: Dani
05.01.2007 um 18:25 Uhr
Hi,
stimmt...ich könnte einfach 10 dateien anlegen mit der Endung .rar. Diese werden dann überschrieben! Ich teste das mal in Ruhe und melde mich dann wieder!


Gruß
Dani
Bitte warten ..
Mitglied: bastla
05.01.2007 um 18:25 Uhr
So, als Starthilfe:

01.
echo off & setlocal 
02.
set Neue=0 
03.
for /l %%i in (10,-1,1) do if not exist D:\Sicherungen\Name%%i.zip set Neue=%%i 
04.
if [%Neue%]==[0] goto :Rotation 
05.
move D:\Sicherungen\Temp\neu.zip D:\Sicherungen\Name%Neue%.zip 
06.
goto :eof 
07.
:Rotation 
08.
for /f %%i in ('dir D:\Sicherungen\Name*.zip /b /o-d') do set Letzte=%%i 
09.
del D:\Sicherungen\%Letzte% 
10.
move D:\Sicherungen\Temp\neu.zip D:\Sicherungen\%Letzte%
Grüße
bastla

[Edit] Pfad bei "if not exist ..." ergänzt [/Edit]
Bitte warten ..
Mitglied: Dani
05.01.2007 um 18:50 Uhr
Hi,
hab's erst gerade gesehen! So ungefähr sieht mein Batch auch aus. Ich ergänz ihn einfach mal um 1 oder 2 Zeilen.
Vielen Dank! Wünsch dir n schönes Wochenende!


Gruß
Dani
Bitte warten ..
Mitglied: Biber
05.01.2007 um 20:42 Uhr
Hm, Dani,

wenn Du eh noch am Basteln bist...
bastla's :rotation geht ein bisschen in die Grütze, wenn noch gar keine Datei name*zip existiert.
Tritt zwar wirklich nur beim allerallerersten Mal auf, aber da es ja nun die Zeilenanzahl verdoppelt, würde ich diesen Fall berücksichtigen

01.
... 
02.
:Rotation 
03.
if exist D:\Sicherungen\Name*.zip ( 
04.
    for /f %%i in ('dir D:\Sicherungen\Name*.zip /b /o-d') do set Letzte=%%i 
05.
) ELSE ( 
06.
Set Letzte=name1.zip 
07.
08.
IF exist D:\Sicherungen\%Letzte% del D:\Sicherungen\%Letzte% 
09.
move D:\Sicherungen\Temp\neu.zip D:\Sicherungen\%Letzte%
@bastla
Und Du hast Recht: Die Angaben für den Sicherungspfad und die Namens-Patterns hätte ich auch in Variablen gepackt.
Will doch nicht 10 Zeilen ändern, wenn sich eine Pfadangabe ändert... Und wenn, schreib ich einen Batch dafür

Grüße
Biber
Bitte warten ..
Mitglied: bastla
05.01.2007 um 20:54 Uhr
@Biber
War nur auf die Schnelle hingeschrieben (den Pfad hatte ich nur zur Verdeutlichung noch nachgereicht)

bastla's :rotation geht ein bisschen in die Grütze, wenn noch gar keine Datei name*zip existiert.
Einspruch, Euer Biber - die Routine :rotation wird (in der zweiten Fassung oben) ja nur erreicht, wenn es keine freien Dateinamen von Name10 bis Name1 mehr gibt (und für die erste Fassung gilt das Kleingedruckte: nachdem alle 10 Dateien erstellt wurden) ...

Grüße
bastla
Bitte warten ..
Mitglied: Biber
05.01.2007 um 21:34 Uhr
Nö, nö, bastla,

Einspruch abgelehnt.
01.
set Neue=0 
02.
for /l %%i in (10,-1,1) do if not exist D:\Sicherungen\Name%%i.zip set Neue=%%i 
03.
if [%Neue%]==[0] goto :Rotation 
04.
...
..wenn gar keine einzige name*.zip existiert, dann geht er wohl in die :Rotation.
Und kommt da ins Rotieren.
Aber klar, ein wenig spitzfindig ist es natürlich schon...

Ich finde Dani's grünen Haken vollauf gerechtfertigt und wenn er diese Frage nicht in "Betriebssysteme" gesetzt hätte,
hätte ich den Thread auch schon geschlossen.

Also, schönen Feierabend jetzt
Biber
Bitte warten ..
Mitglied: bastla
05.01.2007 um 21:44 Uhr
@Biber

Nicht, dass wir uns noch im Kreis drehen , aaaber: Hast Du das wirklich mit dem Erfolg getestet, dass %Neue% nach der "for /l ..."-Zeile den Wert 0 hat? Bei mir endet es, wie es soll, damit, dass in %Neue% 1 steht (die Nummer der letzten der "nicht existenten" Dateien Name10.zip, Name9.zip, ..., Name1.zip)

Grüße
bastla
Bitte warten ..
Mitglied: Biber
05.01.2007 um 22:22 Uhr
@bastla
Uuups - hast Recht.
Nehme alles zurück.
Keine Anpassungen nötig - und sollte mir in diesem oder nächsten Jahr endlich mal Urlaub bewilligt werden, wäre ich hocherfreut, wenn Du hier meine Urlaubsvertretung übernimmst.

Gruß
Biber
Bitte warten ..
Mitglied: Dani
06.01.2007 um 00:26 Uhr
Hi,
Ich finde Dani's grünen Haken vollauf gerechtfertigt und wenn er diese Frage nicht
in "Betriebssysteme" gesetzt hätte, hätte ich den Thread auch schon geschlossen.
Also irgendwas stimmt hier im Forum nicht. Ich habe den Thread nämlich 1000%ig unter Entwicklung => Batch & Shell hinterlegt. Komisch....mal weiter drauf achten. Denn zur Zeit sind viele Threads im Bereich "Betriebsysteme", die da gar nicht hingehören!


Gruß
Dani
Bitte warten ..
Mitglied: bastla
06.01.2007 um 14:36 Uhr
@Biber
... sollte mir in diesem oder nächsten Jahr endlich mal Urlaub bewilligt werden ...
Was willst Du denn mit dem Zeug? Urlaub ist doch das, was im Herbst im Urwald am Boden rumliegt, oder war da noch was anderes ...?
Urlaubsvertretung
Findest Du das als Strafe für ein ganz klein wenig Rechthaberei nicht etwas heftig?

Aber Spass beiseite, natürlich fühle ich mich sehr geehrt.

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Batch zum bearbeiten mehrerer CSV (2)

Frage von Matzus87 zum Thema Batch & Shell ...

Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von Markus5579 zum Thema Batch & Shell ...

Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Batch & Shell
CMD Verschlüsslung ( Batch ) (11)

Frage von clragon zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...