Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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
GELÖST

Datum in Tag, Monat und Jahr zerlegen

Frage Entwicklung Batch & Shell

Mitglied: joe65

joe65 (Level 1) - Jetzt verbinden

09.08.2013 um 19:22 Uhr, 1858 Aufrufe, 11 Kommentare

Hallo,

ich möchte ein Datum vom Format tt.mm.yyyy z.B. 17.06.2013 in Tag=17, Monat=6 und Jahr=2013 als Zahlen bekommen.

Auszug aus Code:
rem Datum: 17.06.2013
for /f "tokens=1,2,3 delims=." %%i in ("%Datum%") do (
set /a day=%%i
set /a month=%%j
set /a year=%%k
)
echo day=%day%
echo month=%month%
echo year=%year%
pause

Ich bekomme aber nur für den Tag (day) ein Ergebnis, nämlich 17, nicht aber für Monat (month) und Jahr (year).
Im cmd-Window wird dann die Meldung ausgegeben:
Ungültige Zahl. Numerische Konstanten sind entweder dezimale (17),
hexadezimale (0x11) oder oktale (021) Zahlen.

Ich versteht das nicht, warum diese Meldung kommt.
Mitglied: Endoro
09.08.2013 um 20:10 Uhr
Hallo,
das ist wegen der Oktalzahlenproblematik, "08" und "09" sind keine gültigen Oktalzahlen.
01.
@echo off &SETLOCAL 
02.
SET "Datum=09.08.2013" 
03.
for /f "tokens=1-3 delims=." %%i in ("%Datum%") do ( 
04.
	set /a day=1%%i%%10 
05.
	set /a month=1%%j%%10 
06.
	set /a year=%%k 
07.
08.
echo day=%day% 
09.
echo month=%month% 
10.
echo year=%year%
lg.
Bitte warten ..
Mitglied: bastla
09.08.2013 um 20:28 Uhr
@ Endoro
Wenn bei Dir noch überschüssige Nullen herumliegen, würde ich je eine den Zeilen 4 und 5 spendieren ...

Grüße
bastla
Bitte warten ..
Mitglied: bastla
09.08.2013, aktualisiert um 20:35 Uhr
Hallo joe65!

Immer noch Probleme damit, Code passend zu formatieren? Kann ich irgendwie dabei helfen?

Grüße
bastla
Bitte warten ..
Mitglied: Endoro
09.08.2013 um 20:40 Uhr
@bastla
109 % 100 = 9 
109 % 10 = 9
lg.
Bitte warten ..
Mitglied: bastla
09.08.2013, aktualisiert um 20:45 Uhr
@ Endoro
110 % 100 = 10 
110 % 10 = ?
Wenn Du schon Zeichen sparen willst, dann:
set /a day=1%%i-100
Grüße
bastla
Bitte warten ..
Mitglied: Endoro
09.08.2013 um 20:46 Uhr
Oi, meine Monate haben nur 9 Tage, dann gibt's eher Geld
01.
@echo off &SETLOCAL 
02.
SET "Datum=09.08.2013" 
03.
for /f "tokens=1-3 delims=." %%i in ("%Datum%") do ( 
04.
	set /a day=1%%i-100 
05.
	set /a month=1%%j-100 
06.
	set /a year=%%k 
07.
08.
echo day=%day% 
09.
echo month=%month% 
10.
echo year=%year%
lg.
Bitte warten ..
Mitglied: colinardo
10.08.2013 um 10:24 Uhr
Hallo joe65,
oder du machst es direkt so:
01.
set day=%date:~0,2% 
02.
set month=%date:~3,2% 
03.
set year=%date:~6,4%
Grüße Uwe
Bitte warten ..
Mitglied: bastla
10.08.2013, aktualisiert um 10:44 Uhr
@ colinardo
Aber nicht, wenn doch das Ergebnis numerisch sein soll - daher nach dem gleichen Schema wie oben:
01.
set /a day=1%date:~0,2%-100 
02.
set /a month=1%date:~3,2%-100 
03.
set /a year=%date:~6,4%
Grüße
bastla
Bitte warten ..
Mitglied: joe65
10.08.2013 um 12:46 Uhr
Hallo bastla,

ich bin in diesem Bereich (batch scripte) ein Anfänger. Was ist mit formatieren genau gemeint?
Sind die Einrückungen nicht in Ordnung oder ist sonst noch was zu beachten?
Kannst du mir evtl. meinen Code so anpassen, dass er richtig formatiert wäre, dann wird es mir vielleicht klarer.

Gruß
Bitte warten ..
Mitglied: colinardo
10.08.2013 um 12:52 Uhr
Zitat von joe65:
ich bin in diesem Bereich (batch scripte) ein Anfänger. Was ist mit formatieren genau gemeint?
Mit formatieren meinen wir das du Tags verwendest um deinen Code zu posten, damit keine Sonderzeichen verloren gehen.

Sind die Einrückungen nicht in Ordnung oder ist sonst noch was zu beachten?
Kannst du mir evtl. meinen Code so anpassen, dass er richtig formatiert wäre, dann wird es mir vielleicht klarer.
@bastla und @Endoro ging es vorrangig darum ob du später mit dem Datum bzw. den Variablen rechnen musst, weil du erwähnt hast das es "Zahlen" sein sollen.
Wenn das nicht der Fall ist und du die Variablen so wie sie sind verwenden möchtest, reicht das hier völlig aus:
01.
set day=%date:~0,2% 
02.
set month=%date:~3,2% 
03.
set year=%date:~6,4%
Grüße Uwe
Bitte warten ..
Mitglied: bastla
10.08.2013, aktualisiert um 12:57 Uhr
Hallo joe65!
Kannst du mir evtl. meinen Code so anpassen, dass er richtig formatiert wäre
Du brauchst doch nur vor den Code "<code>" und danach "</code>" zu schreiben (wie eigentlich den schon mehrfach verlinkten Formatierungs-FAQ zu entnehmen wäre) - das kannst (und sollst) Du auch nachträglich noch tun ...

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
Microsoft Office
gelöst EXCEL Bedingte Formatierung wenn bestimmtes Jahr im Datum ist (6)

Frage von Hobi84 zum Thema Microsoft Office ...

Datenbanken
gelöst SQL-Abfrage - DISTINCT - letztes Datum (3)

Frage von emeriks zum Thema Datenbanken ...

Windows 10
gelöst Windows 10 - Datum und Zeitfehler bei Update (3)

Frage von swisstom zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...