Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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 IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

fehler finden

Frage Entwicklung Batch & Shell

Mitglied: neuhier

neuhier (Level 1) - Jetzt verbinden

13.10.2006, aktualisiert 23.10.2006, 3418 Aufrufe, 3 Kommentare

Guten Tag,

vieleicht ist mein Fehler auch zu simple. Naja ich bin eben nicht der beste. Ich wollte eigentlich nur eine Funktion testen um weiter an einem anderen Programm schreiben zu können.
Ich weis hierbei nicht warum es der Fall ist was es tut. Bei der if Anweisung springt es bei jedem Wert nach goto "_richtig" was eigentlich nicht soll. Kann es sein das die shell hierbei zwischen String und date nicht unterscheiden kann?

@echo off
title Ich bin ein Testprogramm
setlocal
set _localdate= date /t

rem Hauptprogramm

echo Bitte geben Sie an, welches Datum heute ist!
echo.
set /p _answer="In dd|mm|yyyy: "

if %_answer% == %_localdate% (
goto _richtig
) else (
goto _falsch
)


:_richtig
echo.
echo Richtig heute ist der %_answer%
pause
goto _end

:_falsch
echo.
echo Falsch heute ist der %DATE%.
pause
goto _end

:_end
endlocal

Danke sehr für eure Hilfe.
Mitglied: neuhier
13.10.2006 um 16:15 Uhr
Danke habe meinen Fehler selber entdeckt. Bei der Variable _localdate wird der Wert date /t zugewiesen und nicht das aktuelle Datum. (wie ich fälschlicherweise dachte)
Erst bei der Ausgabe über echo wurde die zuweisung date /t in das aktuelle datum umgewandelt.

der richtige code sieht dann halt so aus: if %_answer% == %DATE% (
goto _richtig
) else (
goto _falsch
)

Eine neue Frage stellt sich mir, wie kann ich denn nun Vergleich ob eine Eingabe kein datum ist?
Bitte warten ..
Mitglied: Biber
19.10.2006 um 20:37 Uhr
Moin neuhier,

Eine neue Frage stellt sich mir, wie kann ich denn nun Vergleich ob eine Eingabe kein datum ist?

Falls es noch eine offene Frage sein sollte:

1. Du kannst mit reinen Batchmitteln nicht auf "ist gültiges Datum" prüfen.
Da es im Batch keine unterschiedlichen Datentypen gibt ...alles ist Text, String, Prosa....

2. Du kannst natürlich eine "befreundete" Skriptsprache wie JScript oder VBSkript befragen - da gibt es Datums-Datentypen und auch jeweils eine isdate-Funktion.
Das kostet Dich maximal 3 Zeilen im Batch (Snippet schreiben, Snippet aufrufen und Snippet löschen).

3. Aber auch das bringt Dich nur begrenzt voran - denn dann weißt Du zwar, ob Dein Datum gemäß den isDate()-Konventionen von VBS gültig ist, aber nicht, ob es in Deinem Sinne formal (Tage und Monate zweistellig, Jahr vierstellig..) und fachlich (ist der "1.8.1457" oder der "22.2.2465" ein erlaubtes Datum?) gültig ist.

Bei Datumsprüfungen kommst Du i.d.R. nicht umhin, auf Ober/Untergrenzen zu prüfen.
Dafür ist Batch das denkbar ungeeigneteste Werkzeug.

Wenn Du Dich in das Thema Batch ein bisschen reinfummeln willst, ist so eine Datumswert-Zerlegung in TT, MM und YYYY und die anschließende Prüfung "Ist denn auch der Tag größer gleich 1 und kleiner gleich 29, wenn Monat gleich Februar und kein Schaltjahr"... sehr hilfreich. Zum Üben. Für eine ernstzunehmende Anwendung gibt es bessere Werkzeuge.

Gruß
Biber
Bitte warten ..
Mitglied: Biber
23.10.2006 um 21:10 Uhr
Tja,
neuhier ist jetzt weghier, wie es aussieht...

Beitrag geschlossen.
Bitte warten ..
Ähnliche Inhalte
Windows Server
gelöst Computer finden den neuen WSUS nicht (41)

Frage von PizzaPepperoni zum Thema Windows Server ...

Batch & Shell
gelöst Batch Syntaxfehler, aber finde ihn nicht :( (5)

Frage von PinkFLuffyUnicorn zum Thema Batch & Shell ...

Monitoring
Internetleitung ausgelastet. Verursachenden Client finden (27)

Frage von fnatic zum Thema Monitoring ...

Neue Wissensbeiträge
Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(8)

Information von thomasreischer zum Thema Windows 10 ...

Microsoft

Die neuen RSAT-Tools für Win10 1709 sind da

(2)

Information von DerWoWusste zum Thema Microsoft ...

Heiß diskutierte Inhalte
Windows 10
Seekrank bei Windows 10 (18)

Frage von zauberer123 zum Thema Windows 10 ...

Windows 10
Windows 10 Fall Creators Update Fehler (14)

Frage von ZeroCool23 zum Thema Windows 10 ...

Router & Routing
gelöst Getrenntes Routing bei VoIP und Daten (12)

Frage von Hobbystern zum Thema Router & Routing ...