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

Printed on: April 18, 2024 at 13:04 o'clock

Member: pieh-ejdsch
pieh-ejdsch Oct 10, 2012 at 15:51:01 (UTC)
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
Member: marinux
marinux Oct 10, 2012 at 16:02:40 (UTC)
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ß
Member: pieh-ejdsch
pieh-ejdsch Oct 10, 2012 at 16:20:18 (UTC)
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
Member: marinux
marinux Oct 10, 2012 at 17:00:22 (UTC)
Goto Top
Vielen Dank für Deine Hilfe.

Gruß