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 IPWünsch Dir wasWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
Kommentar vom Moderator Biber am 24.03.2010 um 20:28:24 Uhr
Habe diesen Beitrag heute auf "gelöst" gesetzt.
Eigentlich ist das ja fast ein Teil 4 des "Batch for Runaways"-Wokshops geworden... der sollte auch auf "benutzer.de" sichtbar sein.

gelöst Internationales Datum und Zeitzone bestimmen

Mitglied: DaSilva

DaSilva (Level 1) - Jetzt verbinden

18.06.2008, aktualisiert 24.03.2010, 7282 Aufrufe, 14 Kommentare

Hilfe bei kleinem Batchscript benötigt.

Ich möchte in eine Datei das Datum inkl. Wochentag und Uhrzeit schreiben.
Die deutsche Version ist auch fertig, nur die englische bereitet mir noch Probleme.
Wie kann ich das Datum als MM-TT-YYYY statt TT.MM.YYYY ausgeben lassen ohne die Tastatur oder sonstige Regionaleinstellungen zu ändern?
Der bisherige Code sieht so aus:

Ergebnis:

Zusätzlich sollte auch die Zeit im zwölf Stunden Format angezeigt werden (geht immer nur um die ZeitEn.cfg) und würde man das im Englischen überhaupt so formulieren?
Als letzter Punkt wäre noch interessant wenn UTC+1 oder UTC+2 angegeben werden kann, je nachdem ob gerade Sommerzeit herrscht oder nicht.

Danke für Hilfe.
Mitglied: Biber
19.06.2008 um 00:26 Uhr
Moin DaSilva,

Rückfragen:
  • soll das Skript nur auf deinem Rechner laufen oder auf "beliebigen"?
  • falls "beliebig": Betriebssystem W2K/XP/Vista und mal als DE, mal als US-Version?
  • WhoThe... wer bitte erwartet von Dir die Info, ob auf dem Rechner automatisch Sommerzeit angezeigt wird???? Wo das in der Registry steht, weiß außerhalb von Redmond eine Handvoll Spinner Entwickler.

[Zu 1 und 2: In deinem Skriptchen gehst Du ja davon aus, dass das deutsche XP-Datumsformat gegeben ist; bei W2000 oder bei englischem Datumsformat würde die %date%-Auswertung ja nicht laufen.]

Grüße
Biber
Bitte warten ..
Mitglied: DaSilva
19.06.2008 um 00:51 Uhr
Erstmal würde es auf meinem Rechner (Vista DE) reichen. Universell wäre aber nett.

Falls man die Zeitzone nicht irgendwo heraus bekommt, gibt es keine Abfrage?

"Derzeit beginnt die mitteleuropäische Sommerzeit jeweils am letzten Sonntag im März um 2 Uhr mitteleuropäischer Zeit. Zum Zeitpunkt des Beginns der Sommerzeit wird die Stundenzählung um eine Stunde von 2 Uhr auf 3 Uhr vorgestellt. Die Sommerzeit endet jeweils am letzten Sonntag im Oktober um 3 Uhr mitteleuropäischer Sommerzeit. Zum Zeitpunkt des Endes der Sommerzeit wird die Stundenzählung um eine Stunde von 3 Uhr auf 2 Uhr zurückgestellt."
Bitte warten ..
Mitglied: Biber
19.06.2008 um 20:38 Uhr
Moin DaSilva,

danke Dir für die aufmunternde Sommerzeit-Definition....
Aber leider kann man/frau im Batch keine Datumsberechnungen machen.
Es gibt schlicht und einfach keinen Datentyp "Datum" im CMD-Interpreter.

Siehe oben bei den Verrenkungen, die Du zur Wochentagsberechnung machen musstest.

Also: ich sehe drei oder vier Möglichkeiten:
  • Im obigen Batch das angelsächsische Datumsformat durch Substring-Funktionen bezogen auf die (vermutlichen) TAG und MONAT-Werte hinfrickeln. Wird dann vollkommen irrwitzig, wenn Du diesen Batch dann auf einem EN- oder US-sprachigen W2000-Rechner startest
  • Im Anfang irgendwie das Datum via Utility "sprachunabhängig" ermitteln lasssen. Zum Beispiel das Now.exe aus dem ResKit kann so etwas.
  • oder alles ohne Drittutilities mit Batch/Reg.exe aus/mit der Registry abfackeln.

Was die GMT/UTC-Abweichung/Berechnung betrifft... geht nur entweder über Registry (was ich mir grad noch zutraue) oder über dubiose Win-API-Calls von GetTimeToLocalTime() oder so ähnlich. Was ich nicht freiwillig für eine Benutzer-Display-Meldung anfasse.

Lohnen sich Aufwand und Nutzen?

Grüße
Biber




[Edit Biber 21.06.2008]
Recommended - was wohl nicht so herauskam - ist der Weg über Utilities, "die das können". Z.B. Now.exe aus dem ResKit oder ein Tool wie ShowDate vom geschätzten Forumsmitglied Axel Hahn, s.u. Links in "Batch und Shell".
Alle folgenden Kommentare haben eher Workshop-Charakter und sind nicht unbedingt Empfehlungen für produktive Lösungen.
[/Edit]
Bitte warten ..
Mitglied: DaSilva
20.06.2008 um 17:13 Uhr
Hmmm, wahrscheinlich eher nicht ;)
Trotzdem danke.
Bitte warten ..
Mitglied: Biber
20.06.2008 um 17:31 Uhr
Na ja, DaSilva,

ich will ja nicht, dass Du so betrübt ins Wochenende gehst...
Bezüglich der Zeitzonen-Infos hab ich noch mal schnell was zusammengeharkt.

Wenn Du XP/Vista hast und die Reg.exe (ist Standard bei denen) und auf HKLM zugreifen kannst, dann tut es dieser Schnipsel.
Output:
... wobei, wenn ich die Registry-Werte richtig interpretiere dort für meinen Rechner herauskommen müsste, dass er momentan 1 Stunde zur GMT-Zeit versetzt + 1 Stunde wg. Sommerzeit vorgestellt ist, also [Zeile Act-Differenz] alles in Allem +2 Std Differenz vorzuweisen hat.

Grüße
Biber
Bitte warten ..
Mitglied: DaSilva
20.06.2008 um 18:15 Uhr
Waoh, danke.
Das mit der englischen Zeitangabe ist auf einem deutschen System wohl nicht möglich!?
Bitte warten ..
Mitglied: Biber
20.06.2008 um 18:38 Uhr
Moin DaSilva,

natürlich ist es möglich... alles außer Brotschneiden geht per Batch.

Nur die Strategie ist die Frage - siehe oben, wo ich mich über mögliche Wege ausgelassen habe.

Das Datumsermittlung im Windows-Batch ist ja nicht nur zwei-, sondern eher schon dreischneidig.

  • Erstens kennt die CMD.exe keine Datums-Arithmetik. Alles ist "Text".
  • Zweitens bekommst Du, wenn Du am CMD-Prompt nach Datum und Zeit fragst, irgendetwas menschenlesbares (mit/ohne Wochentag abgekürzt oder ausgeschrieben, in der Reihenfolge TTMMJJJJ oder MM/DD/YYYY oder als YYYY-MM-DD... ) und Du weißt nicht was Du bekommst
  • Drittens ist diese ganze "Regions- und Spracheinstellung"-Arie so dermaßen zusammengeschlampert von den redmonder Praktikanten, dass ich mittlerweile auch so wesentlich brutaleren Methoden bei der Datumsermittlung greife als M$ sich trauen würde.

In meinem Workshop "Batch for Runaways III" (siehe unten unter mögliche Anleitungen) hatte ich noch geschrieben, ich muss halt das "unstruktierte" und beliebige Datums/Zeitformat normalisieren, das mir vom Tisch des sympathischen Weltmarktführers in den Schoß bzw. in den Batch fällt

Shice drauf. Sehe ich lockerer inzwischen.
Jetzt schiesse ich halt das Datumsformat selber per Registry um und bekomme dann Tage, Monate, Jahre und auch Wochentage wann und wo ich will.
Und hinterher stelle ich den alten Zustand wieder her.

Beispiel.
Output dieses Schnipsels:
[--vorsichtig testen und nicht blind verkaufen-- ist nur schnell zusammengeschrotet]

Die ganze Wochentagsberechnung z.B spar ich mit, indem ich einfach das datums-Anzeigeformat auf "ddd" setze statt das "dd.MM.yyyy" hinzunehmen.
Siehe in Zeile 33ff.
So bekomme ich bei einem "date /t" die Ausgabe "Fr"... *g

Aber ich gebe zu, dass so ein Vorgehen natürlich kein Professionelles ist.
...kann auch gut damit leben....

Grüße
Biber
[Edit] Umgang mit vorhandenen {leeren} Registry-Werten geändert - setNewValue/SaveOldValue angepasst. Siehe unten. [/Edit]
Bitte warten ..
Mitglied: DaSilva
20.06.2008 um 19:17 Uhr
Das ist unglaublich!
Leider bekomme ich folgende Fehlermeldung:

Fehler: "HKEY_CURRENT_USER\Control Panel\International" value "s1159" nicht gefunden

Kann das an Vista liegen?
Bitte warten ..
Mitglied: Biber
20.06.2008 um 22:58 Uhr
Moin DaSilva,

Kann das an Vista liegen?
Teils, teils.
Dass diese Fehlermeldung kommt, "ist ein beabsichtigtes Verhalten" (um eine bekannte Redmonder Softwareklitsche zu zitieren). Works as designed, wie wir Biber sagen.

Oben im Schnipsel kannst Du nachverfolgen, dass ich natürlich erst versuche, die vorhandenen HKCU-Werte des Users zu lesen und zu sichern, bevor ich sie mit irgendeinem Dreck überschreibe.
Wenn es die Werte nicht gibt, steigt das Skript (kontrolliert) aus.
Den Schlüssel "sShortDate", in dem so etwas wie "dd.MM.yyyy" bei Dir stehen wird, den hat er gefunden.
Die beiden Werte "s1159" und "s2359" sind bei Dir wohl nicht definiert, weil Du -trotz Deiner Anglophilie- noch nie mit Us-Datumsformat gearbeitet an diesem Rechner.
--> definiere sie einfach. Liest /interpretiert außer meinem Skript ja keiner.

Bitte an den CMD-Prompt:
"vm" für vormittach, "nm" für nachmMittach
Oder jeweils auf "". (Leerstring)
-->vollkommen wurscht, sieht keiner.
Die bei Dir vorhandenen Werte solltest Du Dir am besten einmal anzeigen und kopieren:
Dann schauen wir weiter.

Grüße
Biber
Bitte warten ..
Mitglied: DaSilva
20.06.2008 um 23:53 Uhr
Danke, jetzt hat alles geklappt.
Hier ist das an meine Bedürfnisse angepasste Script:

Wie du siehst läuft es in einer Endlosschleife da die Zeit sekundengenau in der *.cfg landen soll solange das Script läuft. Ist es schlimm, dass dadurch die letzten Zeilen nicht mehr aufgerufen werden?
Zudem noch eine letzte Frage um mich vollkommen glücklich ins Wochenende zu schicken ;)

1. Ist es möglich bei der englischen Uhrzeit auch die Sekunden mit anzugeben (11:52:11 PM)?

Über eine letzte Optimierung aufgrund dieses Scripts würde ich mich sehr freuen. Danke vielmals! Mehr Kompetenz gibt es wohl nicht in diesem Bereich!
Bitte warten ..
Mitglied: Biber
21.06.2008 um 01:15 Uhr
Moin DaSilva,

zu Deiner Frage "Uhrzeit auch mit Sekunden möglich"...

Ich fürchte: Nein.
Jedenfalls nicht ohne nun doch wieder selbst etwas mit Substr-Funktionen zusammenzustoppeln.

Grund ist diese [Disclaimer: Dies ist die ganz persönliche Meinung eines anonym angemeldeten Forenmitglieds und sollte nicht dem Betreiber dieses Forums angelastet werden.] buggybuggybuggy-Implementierung von Bills Bande.

Die Ausgaben von "date/t" und %date% und die Ausgaben von "time/t" und %time% sind nicht gleich.
Beispiel für (deutsche) Zeit:
--->How The ..Kuckuck kommt so etwas durch die Qualitätskontrolle?
Ebenso unglaublich, dass hinter der Ausgabe von "date/t" ein übersehenes Leerzeichen hängt (siehe die Ausgaben in meinem Schnipsel oben).
Praktikantenpfusch.

Anyhow, die Registry-Werte, die wir hier manipulieren, sind immer sofort bei date/t und time/t wirksam... aber bei time/t ist mir keine Holzhammermethode bekannt, mit der ich via Registry die Sekunden mit anzeigen lassen kann.

Eventuell kannst Du es mal versuchen, ob Du über Klickibunti (Einstellungen->Regions- und Spracheinstellungen->Datum und Uhrzeit") eine solche Möglichkeit findest.
Und dann in der Registry nachschauen, was sich geändert hat.

Oder mal abwarten, ob jemand anderes vielleicht mal darüber gestolpert ist und das hier postet.

Zwei Anmerkungen noch zu Deinem Skript:
Die ganzen ausgeREMten Zeilen kannst Du, wenn Du die nicht wegwerfen willst, überspringen,wenn Du in Zeile 99 aus dem ":loop" ein "goto :loop" machst und diese Sprungmarke :loop" nach Zeile 111 setzt.

Und statt "sleep 1" würde ich ein "sleep 30" oder so setzen...
...wir wollen es doch nicht übertreiben.
Hey, ist nur ein Batch... kein Satellitensteuerungsprogramm...

Grüße
Biber
Bitte warten ..
Mitglied: DaSilva
21.06.2008 um 02:06 Uhr
Danke, das wärs dann soweit.
Kann es sein, dass %deDate%, %endate% und %date% zu verschiedenen Uhrzeiten mal ein Leerzeichen vor oder hinter dem eigentlichen Wert haben?
Zuerst hatte ich noch "%deDate% um %time:~0,8%" was dann "20.06.08 um 20:15:00" ergab, dann habe ich es zu "%deDate%um %time:~0,8%" geändert um das doppelte Leerzeichen zu umgehen und jetzt gerade war ein doppeltes Leerzeichen hinter um (oder vor %time:~0,8%) was mich gar zu "%deDate%um%time:~0,8%" bewegte. Jetzt weiß ich noch nicht ob ich mich eben verguckt habe oder ob es mit der Zeit zu tun hat aber jedenfalls ist da irgendwas krumm.
Bei der englischen Zeit dagegen reicht derzeit ein "%endate%at %EnTime%" für die richtige Darstellung ohne zu viele Leerzeichen.
Ist dir da etwas bekannt bzw. kannst du das nachvollziehen?
Bitte warten ..
Mitglied: Biber
21.06.2008 um 13:15 Uhr
Moin DaSilva,

wie geschrieben, ich halte die vorhandene M$-Implementierung der Regions/Spracheinstellungen für suboptimal...
Und Dein wahrgenommenes Phänomen passt zu meiner Wahrnehmung.
Das merkwürdige Leerzeichen nach der "date /t"-Ausgabe hatte ich ja auch schon angesprochen. Wenn das nun auch "nicht immer da ist", dann... na ja, sagen wir so: Kann auch sein, dass ich einen Tippfehler drin habe. Ich werde es noch mal prüfen.
Kann aber auch sein, das M$ einen klitzekleinen Flüchtigkeitsfehler übersehen haben könnte.

A propos Murks:
Ich würde auch gern nachbessern - an einer Stelle habe ich gepennt.
Die Werte s1159 und s2359, die bei Dir als "nicht gefunden" angemeckert wurden:
Fehlinterpretation von mir. Die existieren als REG_SZ, aber die sind {leer}.

Ich ändere deshalb die beiden Call:Blöcke unterhalb des eigentlichen Schnipsels wie folgt:
Lese ich jetzt einen "leeren" Registrywert, dann wird die old_xxx-Variable auch auf "" gesetzt.
Soll ein RegValue auf "leer" gesetzt werden, dann ist die Syntax des Reg.exe-Utilities auch weniger dubios, wenn der /d-Parameter ( /d=fülle mit Daten) ganz weggelassen wird.
Ich ziehe diese Änderung oben im Schnipsel nach.

Einen Nachtrag noch zu dem Time/t-Wert und ob der auch Sekunden anzeigen kann.
Vergiss es. Habe in meinen Akten nachgeschaut.
Der Time/t-Wert wird nur minütlich aktualisiert.
Also ist auf diesem Weg keine Sekunden-Information abgreifbar.

Grüße
Biber
Bitte warten ..
Mitglied: DaSilva
28.06.2008 um 18:40 Uhr
Was mir gerade erst aufgefallen ist:
Die englische Zeit ist eine Stunde früher als die (richtige) deutsche
Zeit.
Eben wurde 15:41:41 und 2:41 PM angezeigt.
Wie kann ich das noch korrigieren?
Danke.
Bitte warten ..
Ähnliche Inhalte
Weiterbildung

International anerkannte und verbreitete Projekt Manager Zertifizierungen

Frage von St-AndreasWeiterbildung

Hallo zusammen, ich stecke mal wieder in einem multinationalen Projekt mit vielen, leider kleinen Beteiligten (kleine Firmen). Das gesamte ...

PHP

Datum Rechner

gelöst Frage von michi-ffmPHP6 Kommentare

Hey Leute, evtl kann mir jemand helfen und mir folgenden Skript erklären und sagen wie ich das Jahr dazubekommen ...

Datenbanken

Datum Splitten

gelöst Frage von tsunamiDatenbanken4 Kommentare

Hallo Forum, erstmal frohe Ostern. Ich bin am basteln und brauche einen Ansatz: Ich möchte das Array splitten. Und ...

Microsoft

Mit Powershell Datum aus Ordnername als Datum extrahieren

gelöst Frage von YotYotMicrosoft11 Kommentare

Moin! ja, ich habe bereits gesucht und auch ein paar Fortschritte gemacht, da ich aber außerhalb von Exchange gerade ...

Neue Wissensbeiträge
Sicherheit

Windows Setup erlaubt elevation of privilege plus DC Updates

Information von DerWoWusste vor 6 StundenSicherheit

Eine interessante neue Sicherheitslücke. Details gibt es wenig, aber die klare Empfehlung: If you are using WSUS or MEM ...

Exchange Server

Exchange Server 2016 and the End of Mainstream Support

Information von Dani vor 19 StundenExchange Server

As hopefully many of you already know Exchange Server 2016 enters the Extended Support phase of its product lifecycle ...

Viren und Trojaner

Schwachstelle in Teamviewer oder aufgeflogene Backdoor?

Information von magicteddy vor 1 TagViren und Trojaner

Moin, die Interpretation überlasse ich jedem selber, ich habe eine deutliche Abneigung dagegen. Wer es nutzen muss sollte schleunigst ...

Sicherheit

Eine ungepatchte Sicherheitslücke in der Windows Druckerwarteschlange ermöglicht das Ausführen von Malware mit Adminrechten

Information von transocean vor 3 TagenSicherheit

Moin, eigentlich sollte die Sicherheitslücke schon seit Mai 2020 geschlossen sein. Aber lest selbst. Grüße Uwe

Heiß diskutierte Inhalte
Internet
VPN und Fritzbox
Frage von jensgebkenInternet29 Kommentare

Hallo Gemeinschaft, da der Support von AVM mir keine Antwort gibt, versuche ich es hier einmal HArdware 7490 zwei ...

Sicherheit
Verschlüsseln anstatt löschen ?
Frage von TastuserSicherheit19 Kommentare

Hallo, ist es möglich ganze Ordner auf Windows 10 zu verschlüsseln? Aber keine Kopien zu verschlüsseln (wie mit WinRAR) ...

Switche und Hubs
Neue Switches für Schule
Frage von Freak-On-SiliconSwitche und Hubs15 Kommentare

Servus; Eins Vorweg, bin leider in vielen Sachen noch nicht so erfahren. Und nein, ich kann LEIDER keinen Dienstleister ...

LAN, WAN, Wireless
Zwei Fritzboxen per VPN verbinden - Aber ins Gast-Lan4
gelöst Frage von KlasiKlausLAN, WAN, Wireless14 Kommentare

Hallo liebe Community, tldr: Zwei Computer @ 2 locations - connect via FritBox VPN Heimnetzwerk Fritte1 und LAN4 (Gastnetzwerk) ...

Weniger Werbung?
Administrator Magazin
08 | 2020 Cloud-First-Strategien sind inzwischen die Regel und nicht mehr die Ausnahme und Workloads verlagern sich damit in die Cloud – auch Datenbanken. Dort geht es aber nicht nur um die Frage, wie die Datenbestände in die Wolke zu migrieren sind, sondern auch darum, welche Datenbank ...