Dieser Beitrag ist schon älter. Bitte vergewissern Sie sich, dass die Rahmenbedingungen oder der enthaltene Lösungsvorschlag noch dem aktuellen Stand der Technik entspricht.

Wochentag per Batch ermitteln

Mitglied: fugu
Moinz Leute,

jetzt quäle ich mich seit geraumer Zeit durch das "Umgang mit Datum und Zeit - Tut" und habe leider glaub ich nur noch Holzwolle im Kopf...
Sehe ich das richtig? Es lässt sich - wenn die Ausgabe von "date" nur das reine Datum beinhaltet (ohne Wochentag) nicht mal eben der Wochentag ermitteln?
Oder lässt sich das doch mit akzeptablen Aufwand machen?
Ich brauche den Wochentag (alternativ eine Tagesnummer) als Variable...

Thx Fugu

Content-Key: 80546

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

Ausgedruckt am: 30.11.2021 um 19:11 Uhr

Mitglied: schregi82
schregi82 12.02.2008, aktualisiert am 18.10.2012 um 18:35:23 Uhr
Goto Top
Mitglied: miniversum
miniversum 12.02.2008 um 16:11:28 Uhr
Goto Top
In dem Tutorial andem Du bist gibt es ca in der Mitte folgenden Teil:
Beispiel Berechnung Wochentag aus einem Datum mit Bordmitteln:

:: --- snipp GetDoW-Codeschnipsel.bat
:: Berechnet den DoW / Tag der Woche als numerischen Wert 1=Montag...7=Sonntag
:: IN-Parameter: Para 1-3 yy, mm, dd ( Jahr 2 oder 4stellig, Monat, Tag (mit/ohne führende "0" egal)
:: ..............Para 4 ist ein Variablennamen für den DoW/TachDerWoche
:: ..............Optional: Para 5 die Datumsgrenze (z.B. TwoDigitYearMax aus der REG).
::...............Mein Default (vollkommen willkürlich) 2038
:: ich mach hier KEINE Parameterüberprüfung und ähnliches, soll ja später nicht als eigenständiger Batch verwendet werden.
:: Algorithmus frei nach Batch Function Library for Windows NT4/2000/XP/2003
off & Setlocal
IF [%5]==[] (set /a "TwoDigitYearMax=2038%%1000") Else set /a TwoDigitYearMax=%5%%1000
set yy=%1 & set mm=%2 & set dd=%3
if 1%yy% LSS 200 if 1%yy% LSS 1%TwoDigitYearMax% (set yy=20%yy%) else (set yy=19%yy%)
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,dow=153*m+2
set /a dow=dow/5+dd+y*365+y/4-y/100+y/400-2472630,dow%%=7,dow+=1
endlocal&Set %4=%dow%&goto :EOF
:: --- snipp GetDoW-Codeschnipsel.bat

Aufruf und Output wären zum Beispiel (setzen einer numerischen Wochentagsvariablen für den 2.Oktober 2005)

>getDow 2005 10 2 nWochentag
nWochentag=7

Das ist doch was du haben willst oder?

miniversum
Mitglied: fugu
fugu 12.02.2008 um 16:25:49 Uhr
Goto Top
Sorry, nein, das ist es nicht.
Ich hab's vorerst mit dem BatchEnhancer gelöst. Schön finde ich das nicht, weil's damit nicht sofort und universell einsetzbar ist.

Was ich möchte ist einen Kopiervorgang anstossen, der automatisch in einen Ordner mit Namen des Wochentages sichert.
Montag, Dien...., Samstag
Und dann am nächsten Montag den Montagsordner aktualisiert (robocopy /mir)

fugu
Mitglied: miniversum
miniversum 12.02.2008 um 19:30:55 Uhr
Goto Top
Hier mal das ganze etwas aufbereitet:
Die Forschleife muß eventuell angepast werden, je nach dem ob %date% bei dir tt.mm.yyyy oder mm-tt-yyyy oder wie auch immer formatiert ist. Hier ist es für tt.mm.yyyy also z.B. 12.02.2008 gemacht.
%WoTa% gibt dir wie du siehst den Wochentag als Name zurück, %dow% als Tag der Woche als Zahl zwischen 1 und 7.

miniversum
Mitglied: Biber
Biber 12.02.2008 um 22:42:22 Uhr
Goto Top
Moin fugu,

ich versteh das ganze Problem in mehrfacher Hinsicht überhaupt nicht.

Vielleicht bin ich damals bei dem Tut damals zu sehr abgedriftet, aber eine der zentralen Aussagen sollte gewesen sein:

Was immer im Batch/am CMD-Prompt als Datumswert angezeigt wird, es ist Prosa, Lyrik, Text - es lässt sich nicht damit rechnen.

Es ist nun mal nicht möglich, von einem Text "11.12.2007" auf den Tag der Woche, auf gestern, auf das vierte Quartal, auf den Monat Dezember zu kommen, es sei denn, dieser Zehn-Zeichen-Text wird dreisterweise als (gültiger) Datumswert unterstellt und einem Werkzeug übergeben, welches mit Datums-Datentypen umgehen kann. Z.B. VBScript.

Nochmal:
  • von einer Textvariablen "12.02.2008" auf den Text "Dienstag" kommen -----> geht eigentlich nicht.
  • von einem Datumswert 12.02.2008 auf den Text "Dienstag" zu kommen -->geht. Aber nur in einem Universum, in dem es den Datentyp "Datum" gibt. Also jenseits der CMD.exe.

Für deinen Zweck - für Robocopy den Namen des Wochentags ermitteln, weil der Sicherungsordner so heißt - brauchst du nur Robocopy selbst.


Ausgabe:

Grüße
Biber
Mitglied: fugu
fugu 15.02.2008 um 11:12:45 Uhr
Goto Top
Thx euch beiden!!

@Biber: Wie kann man nur so krumm denken??? :-D face-big-smile Geile Lösung!!!

Fugu
Heiß diskutierte Beiträge
question
Euro Zeichen geht nicht mehr gelöst GwaihirVor 1 TagFrageWindows 1014 Kommentare

Hallo zusammen, bei einem User geht das Euro-Zeichen nicht mehr. Er kann es nur noch über Copy&Paste aus der Zeichentabelle einfügen. Auch STRG+ALT+E klappt nicht. ...

question
Bitlockerpartition versehentlich gelöscht Läppi findet nach Partitiosformatierung mbr gpt die Partition nicht wiederPCChaosVor 1 TagFrageWindows 1011 Kommentare

Hallo zusammen, Ich habe ein riesen Problem, das mir sonst einfach erschien. Ich hatte eine Bitlocker Partition D: auf meinem C: Laufwerk installiert. Weil Windows ...

question
Mini PC lüfterlossurvial555Vor 1 TagFrageHardware8 Kommentare

Hallo zusammen, ich bin auf der Suche nach einer guten Lösung über System für staubintensive UmgebungenIch setzte zur Zeit 4 PCs in einem Lagerumfeld ein, ...

question
RDS 2019 - Excel2019 öffnet Dateien sehr langsam gelöst pr3adusVor 1 TagFrageWindows Server15 Kommentare

Guten Tag, ich habe ein Problem bei einem meiner Kunden: seit kurzem verwendet der Kunde meine RDS-Farm. Hier haben wir 2 RDS-Hosts und ein RDS-GW ...

question
Online Kalender gesuchtStefanKittelVor 1 TagFrageInternet8 Kommentare

Hallo, ein Kunde von mir sucht einen Online-Kalender zur Raumreservierung. Keine Datenschutzrelevanten Informationen. Es geht um 3-4 Besprechungsräume in einem Gebäude wo mehrere Firmen sind. ...

info
(Gehäuse) Schutzklasse wie IP60 und was die Zahlen bedeutenSt-AndreasVor 1 TagInformationHardware4 Kommentare

Schutzklassen wie IP51 oder IP6X ließt man immer wieder mal, vor allem bei Gehäusen oder mobilen Geräten. Wenn man besondere Anforderungen an ein Gerät (staubdicht, ...

question
Nextcloud - out of syncRoadmaxVor 1 TagFrageCloud-Dienste3 Kommentare

Hallo Zusammen, wir betreiben eine eigene interne Nextcloud 15 Instanz auf einem Ubuntu 16.04 mit Apache und haben seit geraumer Zeit immer mehr Probleme. 1. ...

question
Welchen Router, Board für Pfsense, OpenVPN? gelöst ROBCB19Vor 1 TagFrageRouter & Routing7 Kommentare

Hallo zusammen, ich suche Hardware für pfsense und Openvpn. Es sollten 10 VPN Verbindungen gleichzeitig möglich sein. Lese mich schon den 2ten Tag in die ...