Top-Themen

Aktuelle Themen (A bis Z)

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

Batch Datei Tag der Woche und 6 Tage davor für Variable

Mitglied: Grobmotoriker

Grobmotoriker (Level 1) - Jetzt verbinden

31.07.2013 um 20:42 Uhr, 2026 Aufrufe, 12 Kommentare, 1 Danke

Nach einiger Suche kann ich nun mit dem im Netz gefundenen Batch Teilprogramm endlich 7 Ordner erstellen und in diese meine Dateien sichern. Nun würde ich ja gerne die ältesten Daten wieder löschen, was mir aber auch die meisten Probleme bereitet. Den DayofWeek Teil find ich ja so gut das ich ihn hier nochmals poste:

:: Wochentagsnummer und umwandlung in Tagesangaben
set daysofweek=Montag,Dienstag,Mittwoch,Donnerstag,Freitbag,Samstag,Sonntag
for /F "skip=2 tokens=2-4 delims=," %%A in ('WMIC Path Win32_LocalTime Get DayOfWeek /Format:csv') do set daynumber=%%A
for /F "tokens=%daynumber% delims=," %%B in ("%daysofweek%") do set day=%%B
echo Guten Morgen! Heute ist:
echo %day% der %date%
mkdir %daynumber% 2>nul
cd %daynumber%

Start meiner Sicherung (Die Wochentagsausgabe benutze ich bloß um vom Script mit dem richtigem Tag begrüßt zu werden)

Mein Problem nach 4 Wochen: Mein Dropboxordner in dem ich die Sicherung vornehme wird zu voll und ich muß händisch wieder löschen.
Ich hätte also gerne eine weitere Variable die jeweils 6 Tage "älter" ist. Also Bei Tag 1 (Montag) den Tag 7 als Löschvariable
Da ich Samstags nur manchmal und Sonntags selten den Rechner benutze, also auch nicht gesichert wird, müßte ich diese beiden Tage gesondert behandeln, Da mir ansonsten der Sonntag und Montag irgendwann mal übergeht. Ich komme also auf ein Maximum von Sicherungen der letzten 4 oder 5 Tage, und das reicht auch völlig.

Da ich leider nur begrenztes Batch-Wissen habe, stehe ich hier vollkommen an.

Bitte um eure Mithilfe

Mitglied: bastla
31.07.2013 um 21:05 Uhr
Hallo Grobmotoriker und willkommen im Forum!

So richtig klar ist mir zwar nicht, was Du genau mit "Löschvariable" meinst, aber "rotierend" um jeweils 6 Tage weiter zu gehen sollte sich etwa so machen lassen:
01.
set /a Loesch=daynumber + 6 
02.
if %Loesch% gtr 7 set /a Loesch-=7
Grüße
bastla
Bitte warten ..
Mitglied: Biber
31.07.2013, aktualisiert um 22:58 Uhr
Moin bastla,

ich glaube eher, er meint "wenn heute Mittwoch (=Wochentag 3 und Name des Backupordners auch 3 ) ist , dann kann ich den Sicherungsordner von vor 6 Tagen = letzten Donnerstag = Wochentag 4 löschen (wenn es den gibt)".

Das wäre auf bätschisch vom CMD-Prompt aber dann eher:
01.
set /a loesch=daynumber % 7 +1  
Oder in Worten tagDerWoche modulo 7 plus 1.

also kann er noch die beiden Zeilen an seinen Batch vor der mkdir-Zeile einfügen
01.
set /a loesch=daynumber %% 7 +1   
02.
if exist %loesch% rd %loesch% /s /q 
03.
REM -oder- rd %loesch% /s /q 2>nul 
04.
 
05.
Rem und dann wie oben.. 
06.
mkdir %daynumber% 2>nul 
07.
...
Grüße
Biber
Bitte warten ..
Mitglied: Endoro
01.08.2013 um 00:10 Uhr
Hallo,
wie wärs mit forfiles:
01.
forfiles /p "start path" /m * /d -7 /c "cmd /c echo del @file"
lg.
Bitte warten ..
Mitglied: Grobmotoriker
03.08.2013 um 13:09 Uhr
forfiles??? muß ich mal testen.
Bitte warten ..
Mitglied: Grobmotoriker
03.08.2013, aktualisiert um 13:23 Uhr
Beitrag von "Biber"

Genau so hab ichs gemeint. wenn Heute Samstag ist, soll der Sonntag gelöscht werden, wenn heute Freitag dann der Samstag usw.
Einziges Problem, am Sonntag wird das Probgramm fast nie ausgeführt, also auch der Montag nicht gelöscht.

Ich dachte ja ich könnt das so ähnlich lösen, wie auch die Wochentage in meiner Ursprünglich benutzten batch in der for-Schleife einfach reingeschrieben werden. Ich brings aber nicht zusammen! (Da bin ich ein anscheinend ein Holzkopf)

Ich dachts circa so:

set loesch=2,3,4,5,1,1,1
for /F "skip=2 tokens=2-4 delims=," %%C in ('WMIC Path Win32_LocalTime Get DayOfWeek /Format:csv') do set loesch=%%C
for /F "tokens=%loesch% delims=," %%D in ("%daysofweek%") do set day=%%D
echo Es kann nun der Ordner %loesch% gelöscht werden
del %loesch%

Ich bin nur zu blöd um zu wissen ob das so funktionieren kann!
lg
Bitte warten ..
Mitglied: Grobmotoriker
03.08.2013, aktualisiert um 13:22 Uhr
Beitrag von "bastla"

eher meinte ich
set /a Loesch=daynumber+1

Was macht deine zweite Zeile eigentlich???
Ich käme ja dann am Sonntag auf die Variable 8 mit der ich nix anfange! Dafür würd ich nie 1 in der Variable stehen haben oder sehe ich das falsch?
Bitte warten ..
Mitglied: bastla
03.08.2013, aktualisiert um 13:29 Uhr
Hallo Grobmotoriker!
eher meinte ich
Ließ sich aus
Also Bei Tag 1 (Montag) den Tag 7 als Löschvariable
nicht so ganz klar ableiten ...
Dafür würd ich nie 1 in der Variable stehen haben oder sehe ich das falsch?
Ja - hätte Dein Test ja eigentlich zeigen sollen ...

Grüße
bastla
Bitte warten ..
Mitglied: Grobmotoriker
03.08.2013 um 13:29 Uhr
Zitat von Endoro:
Hallo,
wie wärs mit forfiles:
01.
forfiles /p "start path" /m * /d -7 /c "cmd /c echo del @file"
lg.

Habs mal gecheckt. Kannte ich gar nicht. kann ich den Befehl so benutzen, daß alles in einem Verzeichnissbaum, was älter als sagen wir 10 Tage ist zu löschen?????
Das wär ja relativ einfach und genial!

(Ich will solche Befehle nicht gleich "live" testen, da mir ansonsten WIEDER alle Daten abhanden kommen könnten. Entschuldigt also bitte meine vorsicht)
Bitte warten ..
Mitglied: Grobmotoriker
03.08.2013 um 13:32 Uhr
Zitat von bastla:
Hallo Grobmotoriker!
> eher meinte ich
Ließ sich aus
> Also Bei Tag 1 (Montag) den Tag 7 als Löschvariable
nicht so ganz klar ableiten ...
> Dafür würd ich nie 1 in der Variable stehen haben oder sehe ich das falsch?
Ja - hätte Dein Test ja eigentlich zeigen sollen ...

Grüße
bastla

Sorry für meine Vorsicht. Ich will nicht alles gleich "live" testen, nur um zu sehen, ob dann zuviel gelöscht wird.
Kannst du mir verraten was es mit "gtr" auf sich hat?
Bitte warten ..
Mitglied: bastla
03.08.2013 um 13:37 Uhr
Hallo Grobmotoriker!

Gegen Vorsicht ist ja auch nix einzuwenden, aber ein einfaches
echo %Loesch%
würde ja auch schon genügen, um das Ergebnis prüfen zu können ...
Kannst du mir verraten was es mit "gtr" auf sich hat?
if /?
Anstelle von "forfiles" böte sich übrigens auch DelAge32 an ...

Grüße
bastla
Bitte warten ..
Mitglied: Grobmotoriker
03.08.2013 um 13:42 Uhr
Zitat von bastla:
Hallo Grobmotoriker!

Gegen Vorsicht ist ja auch nix einzuwenden, aber ein einfaches
echo %Loesch% 
> 
würde ja auch schon genügen, um das Ergebnis prüfen zu können ...
> Kannst du mir verraten was es mit "gtr" auf sich hat?
if /? 
> 
Anstelle von "forfiles" böte sich übrigens auch DelAge32 an ...

Grüße
bastla

Ich glaub jetzt hab ichs gecheckt! Größer als 7 wird wieder 7.
Ich gestehe die für mich möglicherweise beste Lösung ist der forfiles Befehl gewesen. Aber ich Danke dir auch für den Tipp mit DelAge32.
Bitte warten ..
Mitglied: bastla
03.08.2013 um 13:46 Uhr
Hallo Grobmotoriker!
Ich glaub jetzt hab ichs gecheckt! Größer als 7 wird wieder 7.
Nö - es wird um 7 weniger, sodass wie gewünscht aus 8 dann 1 würde.

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Shell Script (Tag der Woche und anderes Script aufrufen).

Frage von webstorBatch & Shell3 Kommentare

Hi Leute, ich kämpfe hier mit einem selbstgebauten Shell Script nur hab ich gerade einen Denkfehler. Meine Abfrage soll ...

PHP

Besucherzähler verschiedener Tage in einer Datei

Frage von Der-SimonPHP8 Kommentare

Hallo Leute, ich hab mal eine kleine Frage an euch. Ich benutze auf meiner Seite ein kleines PHP Script ...

Batch & Shell

Batch Befehl ausführen wenn Datei älter als X Tage

gelöst Frage von BuggerBatch & Shell14 Kommentare

Hallo zusammen, ich finde immer nur Befehle die Dateien oder Ordner löschen nach x Tagen aber nicht um auf ...

Batch & Shell

Batch die alle Dateien löscht die Älter als 3 Tage sind

gelöst Frage von AzubineBatch & Shell5 Kommentare

Guten Morgen, von unserer Zeiterfassung werden die Sicherungsdateien in einem Ordner abgelegt und mit Veritas auf ein externes Bandlaufwerk ...

Neue Wissensbeiträge
Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 12 StundenHumor (lol)3 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 1 TagGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Sicherheit

Intel gibt neue Spectre V2-Microcode-Updates frei (20.02.2018)

Information von kgborn vor 1 TagSicherheit

Intel hat zum 20. Februar 2018 weitere Microcode-Updates für OEMs freigegeben, um Systeme mit neueren Prozessoren gegen die Spectre ...

Microsoft
ARD-Doku - Das Microsoft Dilemma
Tipp von Knorkator vor 1 TagMicrosoft3 Kommentare

Hallo zusammen, vor einigen Tagen lief in der ARD u.a. Reportage. Das Youtube Video dazu dürfte länger verfügbar sein. ...

Heiß diskutierte Inhalte
Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server45 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Server-Hardware
Welche Rolle spielt Design bei Enterprise IT Hardware?
Frage von ApolloXServer-Hardware16 Kommentare

Ich arbeite für einen internationalen Elektronikhersteller in der Forschung und meine Aufgabe ist es, Feedback von Nutzern in Hinsicht ...

Switche und Hubs
Cisco SG350X-48 AdminIP in anderes VLAN
Frage von lcer00Switche und Hubs14 Kommentare

Hallo zusammen, ich habe ein Problem mir einem Cisco SG350X-48 bei der Erstinstallation wurde eine IP 192.168.0.254 (Default VLAN ...