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

Frage Entwicklung Batch & Shell

GELÖST

Datum zweier Dateien auslesen und vergleichen

Mitglied: LFS1993

LFS1993 (Level 1) - Jetzt verbinden

06.11.2008, aktualisiert 07.11.2008, 5378 Aufrufe, 11 Kommentare

Hallo zusammen!

Bin noch sehr neu hier und auch auf dem Gebiet der BAT-Dateien, daher stehe ich vor einem Rätsel, was mir auch durch stundenlanges Suchen hier und über Google nicht lösbarer wurde...

Ich möchte das Datum, nur das Datum ohne Uhrzeit, von zwei Dateien miteinander vergleichen und daraus das Ergebnis:

JA, gleiches Datum

oder eben

NEIN, unterschiedliches Datum

erhalten und in einer txt-Datei ausgeben lassen.

Tja, wie gesagt, ich komm da leider nicht wirklich weiter...

Danke sehr im Voraus,

LFS
Mitglied: bastla
06.11.2008 um 15:15 Uhr
Hallo LFS1993 und willkommen im Forum!

Das sollte etwa so gehen:
01.
@echo off & setlocal 
02.
for %%i in ("D:\Datei1.txt") do @for /f %%d in ("%~ti") do set "Dat1=%%d" 
03.
for %%i in ("D:\Datei2.txt") do @for /f %%d in ("%~ti") do set "Dat2=%%d" 
04.
if "%Dat1%"=="%Dat2%" ( 
05.
    echo JA, gleiches Datum 
06.
) else ( 
07.
    echo NEIN, unterschiedliches Datum 
08.
)>D:\Ergebnisdatei.txt
Grüße
bastla
Bitte warten ..
Mitglied: LFS1993
06.11.2008 um 15:26 Uhr
Hi bastla!

Vielen Dank für die schnelle Antwort.

Ich mußte noch ein % im Teil "%~ti" mit einbauen, damit es funktioniert, nur die Ausgabe in eine Datei krieg ich trotzdem nicht hin...
Im Command-Fenster krieg ich dann die Aussage geregelt, aber nur im positiven Fall, also wenn das Datum gleich ist, im Negativfall keine Ausgabe...

Könntest Du da vielleicht nochmal drüber schauen, oder werden noch weitere Infos benötigt?

Gruß, LFS
Bitte warten ..
Mitglied: Biber
06.11.2008 um 16:23 Uhr
Moin LFS1993,

um das IF-ELSE-Konkrokt herum sollten auch noch Klammern, dann passt es.
01.
::----snipp SameDate.bat 
02.
@echo off & setlocal 
03.
Set "out=nul:" 
04.
for %%i in ("%~1") do @for /f %%d in ("%%~ti") do set "Dat1=%%d" 
05.
for %%i in ("%~2") do @for /f %%d in ("%%~ti") do set "Dat2=%%d" 
06.
(if "%Dat1%"=="%Dat2%" ( 
07.
    echo JA, gleiches Datum 
08.
) else ( 
09.
    echo NEIN, unterschiedliches Datum 
10.
))>%out%
In der zweiten Zeite, wo jetzt "Set out=nul:" steht, kann eine Ausgabedatei definiert werden.
Zum Testen reicht ja die Definition von "nul:" bzw. "con:" um das Umleiten zu Testen.
Bei Angabe von "nul:" sollte in keinem der beiden Fälle irgendwas auf dem Bildschirm ("con:") erscheinen, bei Angabe von "con:" in beiden Fällen.
Hier ein "con:"-Beispiel:
01.
>e:\schnipsel\samedate x.bat x.log 
02.
NEIN, unterschiedliches Datum 
03.
 
04.
(=16:14:24  D:\temp=) 
05.
>e:\schnipsel\samedate x.bat x.bat 
06.
JA, gleiches Datum
Grüße
Biber
[Edit] Okay, wieder fast zu langsam....[/Edit]
Bitte warten ..
Mitglied: bastla
06.11.2008 um 16:23 Uhr
Hallo LFS1993!

Sorry, war etwas unter Zeitdruck und der Batch dementsprechend dahingeschludert ...

So sollte es dann wirklich was werden:
01.
@echo off & setlocal 
02.
for %%i in ("D:\Datei1.txt") do for /f %%d in ("%%~ti") do set "Dat1=%%d" 
03.
for %%i in ("D:\Datei2.txt") do for /f %%d in ("%%~ti") do set "Dat2=%%d" 
04.
if "%Dat1%"=="%Dat2%" ( 
05.
    >D:\Ergebnisdatei.txt echo JA, gleiches Datum 
06.
) else ( 
07.
    >D:\Ergebnisdatei.txt echo NEIN, unterschiedliches Datum 
08.
)
[Edit] ... aber Bibers Version ist ohnehin besser, also nimm gleich diese. [/Edit]

Grüße
bastla
Bitte warten ..
Mitglied: LFS1993
06.11.2008 um 16:47 Uhr
Hi Ihr beide!

Also, ich danke Euch beiden sehr, so klappt das wirklich wunderbar, mir ist absolut geholfen und das freut mich sehr!!!!!!
Kann man da vorher vielleicht noch eine Abfrage integrieren, wo nach der ersten der beiden Dateien geprüft wird und falls diese nicht da sein sollte gleich eine andere Meldung ausgeben und das weitere Script unterbrechen lassen?!?

Da ist nämlich eine Datei, die automatisiert behandelt wird, die heißt ganz einfach xyz.txt und wenn die bearbeitet wurde, danach suche ich, heißt die _xyz.txt

Ich würde also auf den exakten Namen prüfen lassen und falls was nicht paßt sofort eine STOP-Meldung generieren lassen wollen, das wäre absolut super!

Danke nochmals, auch im Voraus,

LFS
Bitte warten ..
Mitglied: Biber
06.11.2008 um 18:41 Uhr
Moin LFS1993,

egal, ob Du nun immer auf zwei bestimmte Dateinamen oder auf zwei als Parameter übergebene Dateinamen prüfen willst, die Mimik im Batch wäre halt jeweils ungefähr so:
01.
@Echo off & setlocal 
02.
 
03.
IF NOT EXIST "D:\EinPfad\DeineDatei.xyz" ( 
04.
          echo Datei "D:\EinPfad\DeineDatei.xyz" nicht gefunden. 
05.
          goto :eof 
06.
07.
...{ und dito für die zweite Datei} 
08.
:: ---oder, bei der Zwei-Parameter-Variante -- 
09.
IF NOT EXIST "%~1" (echo Datei "%~1" nicht gefunden.) && goto :eof 
10.
IF NOT EXIST "%~2" (echo Datei "%~2" nicht gefunden.) && goto :eof 
11.
 
12.
...{und hier der Batch von oben}.
Grüße
Biber
Bitte warten ..
Mitglied: LFS1993
07.11.2008 um 10:39 Uhr
WUNDERBAR!!!

Ja, so einfach scheint das also zu sein, wenn man sich damit auskennt und beschäftigt, werd mich da jetzt auch mal etwas mehr reinhängen.

Eine kleine Frage hab ich aber noch:

Bei der Prüfung auf das gleiche Datum, könnte man da sicher auch 2 verschiedene .txt erzeugen lassen, und per goto woanders in der BAT hinspringen um dort weitere BAT's anzustarten?
Müßte dann wohl in etwa so aussehen, oder irre ich mich:

(if "%Dat1%"=="%Dat2%" (
echo JA goto :allesbestens
)>allesbestens.txt else (
echo NEIN goto :dastimmtwasnicht
)>dastimmtwasnicht.txt
)

Oder hab ich da die völlig falschen Ansätze????

Danke nochmal!
Bitte warten ..
Mitglied: bastla
07.11.2008 um 12:53 Uhr
Hallo LFS1993!

Kurze Frage: Warum probierst Du es nicht einfach aus?

Etwas ansehnlicher formatiert (könntest Du so auch erreichen):
01.
if "%Dat1%"=="%Dat2%" ( 
02.
    echo JA 
03.
    goto :allesbestens 
04.
)>allesbestens.txt else ( 
05.
    echo NEIN 
06.
    goto :dastimmtwasnicht 
07.
)>dastimmtwasnicht.txt 
08.
 
09.
 
10.
echo Hierher kommst Du nie ... 
11.
 
12.
:allesbestens 
13.
echo ok 
14.
goto :eof 
15.
 
16.
:dastimmtwasnicht 
17.
echo nee 
18.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: LFS1993
07.11.2008 um 13:18 Uhr
Hi bastla!

Schnelle Antwort, weil ich noch etwas ängstlich auf dem Sektor bin...
Ich gelobe aber feierlich Besserung und werde nicht mehr wegen jeder Kelinigkeit hier die Pferde scheu machen

Dankeschön aufs Herzlichste!!!!!
Bitte warten ..
Mitglied: bastla
07.11.2008 um 13:26 Uhr
Hallo LFS1993!

... hier die Pferde scheu machen
ist ja nicht wirklich ein Problem, aber Du bringst Dich damit auch um die Chance, aus Deinen Fehlern zu lernen - gerade für Anfänger finde ich "learning by doing" unabdingbar ...

... und solange es in einer Testumgebung (oder so vergleichsweise harmlos wie in diesem Beispiel) stattfindet, ist Angst wohl nicht nötig.

Grüße
bastla
Bitte warten ..
Mitglied: LFS1993
07.11.2008 um 14:02 Uhr
Hi bastla!

Paßt bestens, ich hab das auch schon weiter ausgebaut, macht wirklich Laune, vor allem kann man wirklich aus den Fehlern lernen!!!
Werd mich da wohl doch noch mehr in die Materie arbeiten müssen, gefällt mir sehr gut.

Ich danke nochmals,

Gruß, LFS
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch vergleich von zwei dateien
gelöst Frage von realdavegerBatch & Shell6 Kommentare

Hallo, nach Jahrelangem zugucken, habe ich jetzt schlussendlich eine Frage welche ich selbst stelle. Ich versuche 2 zeiten aus ...

Batch & Shell
Datum in Datei speichern und wieder auslesen
gelöst Frage von AndroxinBatch & Shell3 Kommentare

Moinsen, ich spiele gerade ein wenig mit der Powershell und Zeitstempeln rum: Zeitstempel mit Get-Date erstellen, als String in ...

Batch & Shell
Datum vergleichen
gelöst Frage von Klaus20Batch & Shell11 Kommentare

Hallo Zusammen, vielleicht kann mir jemand (wie schon öfters) mir bei einer Abfrage helfen. Ich möchte gerne falls das ...

Batch & Shell
Zwei Werte vergleichen in einer Batch-Datei
gelöst Frage von PatrickHeissi10Batch & Shell1 Kommentar

Ich möchte die beiden Variablen %eins% und %zwei% vergleichen haben diese den gleichen Wert haben-> goto einszwei Danke

Neue Wissensbeiträge
Microsoft

Letzte Updates für Win10 und Server2016 müssen bei Bedarf über den Update catalogue in den WSUS importiert werden!

Tipp von DerWoWusste vor 4 StundenMicrosoft1 Kommentar

automatisch kommt da nichts an im WSUS und auch nicht im SCCM. Siehe Hinweise zum Bezug der jeweils neuesten ...

Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 3 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 3 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 3 TagenSicherheit13 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Heiß diskutierte Inhalte
Netzwerkgrundlagen
IPv6 Inter-VLAN Routing
gelöst Frage von clSchakNetzwerkgrundlagen10 Kommentare

Hi ich befasse mich gerade mit der Implementierung von IPv6 was bisher (in einem VLAN) korrekt funktioniert inkl. DNS ...

SAN, NAS, DAS
Wer kennt sich mit QNAP und CISCO aus ?
gelöst Frage von MachelloSAN, NAS, DAS10 Kommentare

Hallo Zusammen hier im Forum, Ich habe ein QNas 451+ und dieses NAS hat zwei GBit Lan Adapter die ...

Windows Netzwerk
Ist ein Portforwarding auf einen PC ohne lauschendes Programm ein (großes) Sicherheitsproblem?
Frage von PluwimWindows Netzwerk9 Kommentare

Hallo zusammen, zur Fernwartung eines Rechners an einem anderen Ort nutze ich VNC. Da dieser Rechner einfach nur eine ...

Windows Netzwerk
Zugriff auf den Desktop Ordner eines anderen Rechners in der gleichen Domäne
gelöst Frage von JensNomaWindows Netzwerk6 Kommentare

Guten Abend, ich war neulich mit unserem Admin am Tisch gesessen. Er an seinem Notebook angemeldet mit dem Domänen-Admin, ...