Anhängen von +1 bis-Datum in batch-Datei
Ich habe eine batch Datei erstellt, die das heutige Datum ganz gut. Jetzt muss ich es aktualisieren, um zu zeigen, das morgige Datum. Jede Hilfe ist sehr willkommen:
@echo off
set TimeStamp=12:00:00
FOR /F "TOKENS=1* DELIMS= " %%A IN ('DATE/T') DO SET CDATE=%%B
FOR /F "TOKENS=1,2 eol=/DELIMS=/" %%A IN ('DATE/T') DO SET mm=%%B
FOR /F "TOKENS=1,2 DELIMS=/eol=/" %%A IN ('echo %CDATE%') DO SET dd=%%B
FOR /F "TOKENS=2,3 DELIMS=/" %%A IN ('echo %CDATE%') DO SET yyyy=%%B
SET date="%yyyy%-%mm%-%dd% %TimeStamp%"
echo %date%
InformationsquelleAutor YoungDev | 2013-08-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das 'problem' ist, dass Sie brauchen, um darüber nachzudenken. Februar, Sprung-Jahre, etc.
Paul Tomasi geschrieben hat, brilliante Skript auf seiner Website wo er erklärt es vollständig, sogar mit einem Flussdiagramm.
So, es ist entweder das, oder Tauchen in hybrid-batch-Skripte.
Hoffe, das hilft!
InformationsquelleAutor GitaarLAB
code
** heute ist Donnerstag 08/08/2013 Ungültige Zahl. Numerische Konstanten sind entweder dezimale (17), hexadezimale (0x11) oder oktale (021). dies ist Tag keine. morgen ist Tag keine. 1 morgen ist der 25.11.-4713**Die
date
- format hängt von den lokalen Einstellungen (Ihre Einstellungen für Land). Mein Datumsformat istdd.mm.yyyy
, wie Sie sehen können, in der Skript-Ausgabe Teil.Keine dieser Optionen für mich gearbeitet und mit PowerShell war nicht eine option. Was ich am Ende tun war das verwenden von VBScript erstellt, die das Datum in einem format, das ich wollte. Dann habe ich auch erstellt .batch-Datei on-the-fly. Da mein Konto neu ist, es wird nicht lassen Sie mich beantworten Sie meine Frage. Ich werde versuchen, die Lösung posten später.
Sie können einstellen, mein code für das Datum-format. Ich könnte es machen, auch wenn ich wusste, dass es.
Ich bin ein bisschen nervös, dass das nicht perfekt umsetzen das Julianische Datum-Konvertierung. Ich gebe es einen Schuss, und wieder sein, wenn Dinge scheitern, über Weihnachten / Schaltjahre 😉
InformationsquelleAutor Endoro
Sorry, ich kann nicht sagen, was Sie tun, mit Ihrem Batch-code. Können Sie Kommentar diesem?
Warum müssen Sie den Zeitstempel von 12:00?
In meiner deutschen version sagt es mir:
nach dem ausführen
(eingeschaltet bedeutet "eingeschaltet" oder "auf" oder ähnliches)
Würden Powershell eine option sein? Speichern Sie Ihre geistige Gesundheit...
Ja, Sie können starten Sie eine Powershell-Skript aus Batch:
Powershell starten, und geben Sie "Set-ExecutionPolicy Unrestricted"
(oder melden Sie Ihr Skript, wenn andere Menschen brauchen, um ausführen)
Sie können in der Nähe Powershell-jetzt müssen wir nur brauchte es für diesen einmaligen Schritt
In Ihrem Batch (vorausgesetzt, das Skript wird als "Add-Tage.ps1")
Sorry, siehe meine Antwort bearbeitet, Kommentare haben noch so kleinen Raum. Ich habe allerdings keine Ahnung, wie man die Ausgabe wieder in Batch.
href="http://stackoverflow.com/a/18538751/2098699">stackoverflow.com/a/18538751/2098699
InformationsquelleAutor Dreami
Ich mag Paul Tomasi Lösung (vorgeschlagen von GitaarLAB), aber ich fand es hat sich ein kleiner Fehler, es funktioniert nicht für "08" und "09" Tagen des Monats.
Dies ist, weil die führende null bedeutet, dass das system denkt, Sie sind ungültige oktale zahlen und so mit dieser Aussage:
Generiert die folgende Fehlermeldung mit system-Termine wie 08/03/2017 oder 09/03/2017 (vorausgesetzt, dd/mm/yyyy-format auf Ihre Termine):
Ungültige Zahl. Numerische Konstanten sind entweder dezimale (17),
hexadezimale (0x11) oder oktale (021).
Fand ich die Lösung an anderer Stelle auf hier (siehe Umgang mit oktal-Variablen im batch-Skript), müssen Sie hinzufügen und dann subtrahieren Sie 100 den Umgang mit der führenden null, nach dieser Aussage:
Hier ist das aktualisierte Skript im Wortlaut:
InformationsquelleAutor SI_2000