Windows-10-Stapeldateien basieren auf dem Befehl DATE, wie er auf niedrigeren Windows-Versionen verwendet wird

2151
Dominique

Ich arbeite an zwei (virtuellen) Maschinen:

  • Zuerst ist ein Windows 10-Rechner
  • Zweitens ist ein Windows 7-Rechner

Bei beiden sind die kurzen Datumsformate gleich: dd.MM.yyyy
Bei beiden führe ich dieselbe Batchdatei aus, die auf dem DATEBefehl basiert .

Ich habe Unterschiede in den Ergebnissen, bezogen auf das Ergebnis der DATEBefehlsergebnisse:

  • Unter Windows 10: The current date is: st 22.03.2017
  • Unter Windows 7: The current date is: 22.03.2017

Wie Sie sehen, ist der Unterschied auf das Vorhandensein des heutigen Namens zurückzuführen ( stist eine Abkürzung für das tschechische Wort für Wednesday).

Das Windows 10-System ist der Master, also meine Frage: Wie kann ich das Windows-7-System so ändern, dass es die ersten beiden Buchstaben des Tagesnamens enthält?

Zum Testen habe ich bereits folgendes für ein kurzes Datumsformat ausprobiert:

dd dd.MM.yyyy // this is better, the length of the format is good, but it does not start with the initials of the day's name. dddd dd.MM.yyyy // this starts with the day's name, but completely,  and I only want the first two letters. 

Inzwischen habe ich mir das Problem noch einmal genauer angesehen: Das Datumsformat scheint an zwei Stellen verwendet zu werden:

  1. Während der Arbeit mit dem DATEKommandozeilenbefehl (dort brauche ich ein Format
    xx dd.MM.yyyy( wie auch immer xx) für die weitere Verarbeitung
  2. Während des folgenden Vorgangs echo: for /r %DIRECTORY% %I in ("*.*") do echo %~tfIDie Idee ist, einen Zeitstempel und den Dateinamen anzuzeigen, etwa:
    22.03.2016 13:50 <filename>(ohne xx)
2
In Windows 7 können keine Wochentage mit zwei Zeichen verwendet werden. DavidPostill vor 7 Jahren 0
Ich sehe zwei Möglichkeiten: (1) Verwenden Sie das Format für lange Tage, ändern Sie jedoch die Tagesnamen in ihre kurzen Äquivalente. Dies bedeutet jedoch, dass Sie niemals die wahren Namen für lange Tage sehen werden. (2) Schreiben Sie Ihr eigenes Programm, um das Datum zu melden: Dies wäre nur ein paar Zeilen von "C" und ist völlig unabhängig von den regionalen Einstellungen oder es kann in einer etwas komplexen Batchdatei ausgeführt werden, die den Inhalt des Programms ändert `% DATE% variable. AFH vor 7 Jahren 0
Verwenden Sie "wmic" oder PowerShell, um das Datum unabhängig von den Gebietsschema-, Regions- und Spracheinstellungen zu ändern. In meiner Antwort [Batch-Skript (cmd), die das Format DD-MM-YYYY \ _weekday hat] (// superuser.com/a/1086182) finden Sie einige Tipps. DavidPostill vor 7 Jahren 0
@AFH: Leider löst selbst das Schreiben eines eigenen kleinen Programms das Problem nicht: Ich müsste dieses Programm "date.exe" nennen, aber wenn ich `Date 'starte, sogar in dem Verzeichnis, in dem ich gerade ein Datum erstellt habe. exe ", er nimmt stattdessen immer noch den Befehl" DATE "in die Befehlszeile ein. Dominique vor 7 Jahren 0
Warum müssen Sie ihm den gleichen Namen geben? Warum nennen wir es nicht "CzDate.exe" oder ähnliches? In `cmd` ist der` date`-Befehl eine eingebaute Shell, daher wird er immer einer externen `date.exe` vorgezogen, es sei denn, Sie fügen dem Aufruf einen Pfad hinzu, z. B.`. \ Date`; Alternativ können Sie für die Verwendung über die Befehlszeile (nicht in einer Batchdatei) einen Alias ​​setzen, z. B. `doskey date =. \ date.exe`. AFH vor 7 Jahren 0

2 Antworten auf die Frage

1
Overmind

In Windows 7 müssen Sie dddein ähnliches Format verwenden, das aus 3 Zeichen besteht und nicht aus 2.

Sie können also ddd dd.MM.yyyy verwenden . Das ist das unterstützte Format.

Eine Möglichkeit, zu 2 Zeichen zu gelangen, besteht darin, eine mit einer Batchdatei zu entfernen.

Bitte lesen Sie die Frage noch einmal sorgfältig. Ihre Antwort beantwortet die ursprüngliche Frage nicht **. Er möchte dem Windows 7-Rechner hinzufügen, der nicht vom Windows 10-Rechner entfernt wird. DavidPostill vor 7 Jahren 0
Sieht aus wie die Anforderung ist andersherum. Ich habe aktualisiert. Overmind vor 7 Jahren 0
Vielleicht ist das vielleicht doch hilfreich: Haben Sie eine Ahnung, wie jemand es unter Windows 10 geschafft hat? Kurzes Datumsformat: `dd.MM.yyyy` DATE-Kommandozeilenergebnis:` st 22.03.2017` => Wie ist es ihnen gelungen, dieses Ergebnis mit `st` zu erhalten? Dominique vor 7 Jahren 0
Sie haben keine st, wenn Sie nur dd.MM.yyyy ändern. Um das st wieder hinzuzufügen, muss das set im Format dd.MM.yyyy sein. Overmind vor 7 Jahren 0
0
Dominique

Was für ein Durcheinander, aber ich glaube, ich habe eine Lösung für das Problem gefunden:

Der Punkt ist folgender: Unter Windows 10 fügt die Befehlszeile die ersten Zeichen des Tages hinzu, selbst wenn sie über ein einfaches Datumsformat (wie dd.MM.yyyy) verfügt date /T, sodass Folgendes angezeigt wird:

date /T st 22.03.2017 

Und meine Kollegen haben ihre Batch-Dateien um die Anwesenheit dieser "st" Charaktere herum gebaut. Die Ausführung dieser Batchfiles auf niedrigeren Windows-Versionen führt zu den genannten Problemen.

Am Anfang der Batchdateien habe ich die Zeile hinzugefügt:

DATE=xx %DATE% 

(sehr kindisch, gebe ich zu)
Dadurch funktionieren die Batchdateien auf meinem Windows-7-Computer.
Damit es auf beiden Systemen funktioniert, muss ich lediglich die Plattform überprüfen, etwa:

set WINDOWS_10=%ver | findstr /C:"Version 10"% if "WINDOWS_10"=="" ( set DATE=xx %DATE%) 

Ich habe es noch nicht auf einem Windows-10-PC überprüft, aber ich glaube, dass dies den Trick erfüllen wird.

Ich kann Win7 nicht mehr überprüfen, da ich alle meine W7-Systeme aktualisiert habe, aber unter Win10 funktioniert der Befehl `set Windows_10 =` nicht: Sie benötigen `ver | findstr / C: "Version 10" `, gefolgt von ', wenn errorlevel 1 DATE = xx% DATE%' gesetzt ist. Dies wirkt sich darauf aus, was `% DATE%` zurückgibt, aber der Befehl `date` selbst bleibt davon unberührt. Sie sollten auch `DATE =` zuerst setzen, um die lokale Variable zu entfernen, und noch einmal vor dem Beenden, damit andere Batchdateien, die von derselben `cmd'-Instanz aufgerufen werden, nicht betroffen sind. AFH vor 7 Jahren 1
Sie werden nicht hinzugefügt, wenn Sie Ihre Einstellungen geändert haben. Overmind vor 7 Jahren 0
@AFH: Danke für die Warnung, aber die Batchfiles werden vom Task-Scheduler verwendet, so dass niemals andere Programme von derselben `cmd'-Instanz ausgeführt werden. Dominique vor 7 Jahren 0