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

Frage Entwicklung Batch & Shell

Mitglied: Grobmotoriker

Grobmotoriker (Level 1) - Jetzt verbinden

31.07.2013 um 20:42 Uhr, 2009 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
Windows 8
Batch Datei abhängig vom aktuellen Tag
gelöst Frage von Rico-WMWindows 811 Kommentare

Hallo zusammen, möchte mir gerne eine kleine Batch Datei in den Autostart Ordner legen. Folgendes soll ausgeführt werden: Wenn ...

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 ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Necur-Botnet soll Erpressungstrojaner Scarab massenhaft verbreiten

Information von BassFishFox vor 50 MinutenErkennung und -Abwehr

12,5 Millionen Spam-Mails aus einem Bot-Netz mit 6 Millionen Computern? Eigentlich eine schwache Leistung. Die Erpresser setzen dabei auf ...

Microsoft

Nadeldrucker-Problem unter Windows - Microsoft liefert Updates

Information von BassFishFox vor 1 StundeMicrosoft

Hat ja nicht lange gedauert. Nachdem die November-Updates für Windows 7, 8.1 und 10 zahlreiche Nadeldrucker lahmgelegt hatten, stellt ...

Linux

Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde

Information von Frank vor 8 StundenLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 TagBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Heiß diskutierte Inhalte
Linux
Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde
Information von FrankLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Router & Routing
Zwei Netzwerke erstellen
Frage von bunteblumeRouter & Routing14 Kommentare

Hallo Zusammen, Ich möchte gerne ein backup von einem bestimmten Folder welcher auf dem Server regelmässig synchronisiert wird auf ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...

Windows 10
Alle Programme mit bestimmtem Namen automatisch (per GPO) deinstallieren
gelöst Frage von lordofremixesWindows 1012 Kommentare

Hallo zusammen, gibt es eine Möglichkeit, alle Programme beginnend mit z.B. "Dell" im Namen per Script und somit per ...