marinux
Goto Top

Batch Vergleich eines Strings mit dem Output eines Befehls

Hallo,

ich habe folgende Codezeile innerhalb einer FOR-Schleife, die nicht funktioniert.
if %%~ne.pdf == 'dir /b /OD %%~dpne.pdf %%e|more +1' echo test  
Dabei ist %%e eine Datei mit Pfad, die von der FOR-Schleife ermittelt wurde.

Dieser Datei wird "pdf" als extension angefügt und soll mit dem Output des "dir" Befehls verglichen werden. Nur leider klappt das nicht und ich nehme an, dass ich das IF-Statement so nicht aufbauen kann. Wie ist die Syntax der rechten Hälfte des Vergleichs richtig?

Ich bitte um Hilfe.

Gruß

Content-Key: 192583

Url: https://administrator.de/contentid/192583

Ausgedruckt am: 28.03.2024 um 18:03 Uhr

Mitglied: pieh-ejdsch
pieh-ejdsch 10.10.2012 um 17:51:01 Uhr
Goto Top
moin marinux,

Du kannst nur tatsachliche Werte vergleichen aber keine Anweisungen direkt.
Wenn Du die Existenz der Datei prüfen willst, mach das mit if exist Dateiname ...

Näheres erfährst Du über if /?

Gruß Phil
Mitglied: marinux
marinux 10.10.2012 um 18:02:40 Uhr
Goto Top
Hallo,

nur der einfache Vergleich auf Existenz wollte ich damit nicht bezwecken, das das dann einfacher über exist zu lösen wäre ist mir klar face-smile

Es geht um eine einfache Überprüfung ob eine Datei aktueller ist als eine Andere.

Würde es helfen den Output der Anweisung in einer Variablen zu speichern? Wenn ja, wie?

Gruß
Mitglied: pieh-ejdsch
pieh-ejdsch 10.10.2012 um 18:20:18 Uhr
Goto Top
Dazu brauchst Du keinen Vergleich:
dir /b /OD %%~dpne.pdf %%e|more +1 |findstr /ei pdf >nul && echo %%~ne.pdf ist aktueller. ||echo %%~ne.pdf ist aelter.

Gruß Phil
Mitglied: marinux
marinux 10.10.2012 um 19:00:22 Uhr
Goto Top
Vielen Dank für Deine Hilfe.

Gruß