hummel-75
Goto Top

Nach dem 3 Backup automatisch löschen

ich bin noch in der Ausbildung und für jede Hilfe dankbar

Hallo zusammen,

Problem: mehre Mitarbeiter machen täglich Sicherungen auf ihren USB stick und da der natürlich irgendwann mal voll ist, soll ich einen batch schreiben der folgendes können muss : 1. die bereits vorhanden Sichererungen nach Datum auflistet (die neueste zuerst)
2. nach Abfrage alle bis auf die letzten 3 Sicherungen automatisch löscht

Sicherlich gibt es da einfache Lösung für nur bin ich leider absoluter Anfänger und habe leider auch in dem Forum nichts gefunden was mir helfen könnte.
Bitte helft mir
ach so ja auf dem PC der Mitarbeiter ist überall Windows 7 installiert

Content-Key: 143870

Url: https://administrator.de/contentid/143870

Printed on: April 23, 2024 at 12:04 o'clock

Mitglied: 60730
60730 May 31, 2010 at 12:44:12 (UTC)
Goto Top
Moin,

abhängig von der Art der Sicherung kannst du mit diesem Schnippsel üben

: Version für Files
rem variable für zähler setzen
set count=0
rem als Beispiel sollen die .txt Dateien herhalten
rem andere dateien einfach so ändern
for /f %%a in ('dir *.txt /b /o-D') do call :kill %%a  
pause
goto:eof

:kill
	set /a count=%count%+1
	if %count% geq 3 echo del /s /q %1

edit: lieber doch nicht alle rems in ein script

:Version für Ordner
rem variable für zähler setzen
set count=0
for /f %%a in ('dir *backup* /AD /b /o-D') do call :kill %%a  
pause
goto:eof

:kill
	set /a count=%count%+1
	if %count% geq 3 echo rd /s /q %1


Gruß

edit² @ Biber yupp hätt ich doch lieber so herum lösen sollen - dachte der TO meldet sich heute nochmal....
Member: Biber
Biber May 31, 2010 at 20:04:33 (UTC)
Goto Top
Moin T-Mo,

ist das Absicht mit der geänderten DIR-Wildcard-Maske im zweiten Skript
for /f %%a in ('dir * /AD /b /o-D') do call :kill %%a

und wenn ja: kann Hummel-75 ihre/seine Ausbildung (unter Anrechnung der bereits abgeleisteten ausschliesslich morgen) bei dir fortsetzen? face-wink

@Hummel-75

Willkommen im Forum.

T-Mos Ansätze sind durchaus verwendbar, ABER bei den ersten Gehversuchen ersetze IMMER den eigentlichen auszuführenden Befehl (in diesem Fall das DEL oder RD durch den simulierten Befehl "echo DEL" oder "echo RD", der nur auf dem Bilsschirm anzeigt, was ausgeführt werden würde.

Und das zweite T-Mo-Skript bitte NICHT start starten, bevor du nicht verstanden hast, was da abgeht.

Hilfe zu allen verwendeten Befehlen gibt es am CMD-Prompt mit DEL /?, CALL /? RD/? etc.

Grüße
Biber
und zurückgeb an T-Mo
Mitglied: 60730
60730 Jun 01, 2010 at 06:34:49 (UTC)
Goto Top
Zitat von @Biber:
Moin T-Mo,

ist das Absicht mit der geänderten DIR-Wildcard-Maske im zweiten Skript
> for /f %%a in ('dir * /AD /b /o-D') do call :kill %%a

und wenn ja: kann Hummel-75 ihre/seine Ausbildung (unter Anrechnung der bereits abgeleisteten ausschliesslich morgen)
bei dir fortsetzen? face-wink
öhhmm... face-wink
und zurückgeb an T-Mo

Angenommen, der User macht die Backups immer mit einem Script und die Backups haben immer den gleichen Namen:

if exist backup.333 rd /s /q backup.333
if exist backup.222 move backup.222 backup.333
if exist backup.111 move backup.111 backup.222
rem erzeuge backup.111

Wäre ein anderer Weg, aber der To hat ja immer noch nix geschrieben.

Gruß
Member: Hummel-75
Hummel-75 Jun 01, 2010 at 13:40:41 (UTC)
Goto Top
vielen Dank für Deine schnelle Hilfe,im momentblicke ich da zwar noch nicht so durch aber wenn du sagst das es so wie es hier geschrieben ist funktioniert dann kann ich zumindens ab und zu mal vergleichen
ansonsten melde ich mich einfach noch vielen Dank erstmal
Member: Hummel-75
Hummel-75 Jun 01, 2010 at 14:25:47 (UTC)
Goto Top
hy, ich bin erstmal erstaunt das man hier so schnell eine Antwort auf seine Fragen bekommt, deshalb schon einmal ein grosses Lob an das Forum. Zum Glück muss ich die Batch Datei nicht schon diese Woche fertig haben denn ganz ehrlich blicke ich selbst jetzt noch nicht ganz durch. Aber egal so habe ich zumindens etwas wo ich ab und zu mal vergleichen kann.
Die Sicherung batch die ich bisher geschrieben habe (die auch funktioniert) sieht so aus,


echo * Dateien werden mit Datum und Uhrzeit gesichert *
echo * *
echo * *
echo *
echo .
echo .
rem Variable Datum wird mit dem aktuellen Datum im Format JJJJ-MM-TT gefuellt
set Datum=%date:~-4%-%date:~-7,2%-%date:~-10,2%
rem echo %Datum%

rem Variable Uhrzeit wird mit der aktuellen Uhrzeit im Format Stunde-Minute-Sekunde gefuellt
set Uhrzeit=%time:~-11,2%-%time:~-8,2%-%time:~-5,2%
rem echo %Uhrzeit%

f:
md %Datum%_%Uhrzeit%\
md %Datum%_%Uhrzeit%\mail
md %Datum%_%Uhrzeit%\desktop

pause
rem die Daten werden mit Datum und Uhrzeit gesichert

xcopy D:\*.* F:\%Datum%_%Uhrzeit%\ /s /e /h /c /y
xcopy "C:\Programme\Windows Live\Mail\*.*" F:\%Datum%_%Uhrzeit%\Mail /s /e /h /c /y
xcopy "C:\Users\SKF\Desktop\*.*" F:\%Datum%_%Uhrzeit%\Desktop\ /s /e /h /c /y

rem xcopy D:\*.* F:\hugo\Daten /s /e /h /c /y
rem xcopy "C:\Programme\Windows Live\Mail\*.*" F:\%Datum%_%Uhrzeit%\Mail\ /s /e /h /c /y
rem xcopy "C:\Users\SKF\Desktop\*.*" F:\%Datum%_%Uhrzeit%\Desktop\ /s /e /h /c /y


und das funktioniert sogar jubel face-smile aber da muss ich jetzt noch den 2 Teil integrieren.
Ich werde es erstmal alleine versuchen weil ich es ja auch verstehen muss hoffe das ihr mir versucht zu helfen wenn ich irgendwo nicht weiter komme, vielen Dank erstmal
Mitglied: 60730
60730 Jun 01, 2010 at 14:43:37 (UTC)
Goto Top
ok - zwei / drei Tipps - schau dir meinen ersten Beitrag an - "zitiere" Ihn und du wirst feststellen - wie ich die Batchschnippsel da reingeschrieben habe.
<code>echo hallo </code> Blöcke
 echo hallo
Dann ist ein Xcopy vielleicht auch der Grund, warum die Sticks nach 3 backups voll sind - schau dir dazu 7zip genauer an.
Im zweifel sind 3 Backups genau eines zuwenig

7Zip ist genauso Freeware - wie wir dazu hier schon die nettesten Scripte drumherum gezimmert haben.

Gruß
Member: Hummel-75
Hummel-75 Jun 07, 2010 at 13:15:49 (UTC)
Goto Top
Moin
Sorry erstmal das ich mich noch nicht für Deinen Hilfe bedankt habe aber mein Projekt liegt immer nur dann an wenn hier weniger zu tun ist. Da ich ja wirklich absoluter Anfänger bin habe ich ersteinmal einen Gang zurück geschalten und einen Online Batch-Kurz mitgemacht und es hat sogar geholfen.
Aber 1 Frage habe ich trotzdem noch an Dich, du schreibst Variable für Zähler setzen soll das in etwa so aussehen Zähler=a und dann setze ich nur noch das a für den Zähler ein ?
Sorry das ich dich soviel fragen aber hier in dieser Firma bin ich momentan auf mich selbst gestellt, wära echt nett von Dir wenn du mir weiterhin ab und zu etwas helfen könntest.
vielen Dank im vorraus lg