emjott
Goto Top

Batch-Problem bei formatieren Zahlen mit if leq

"if 12.234.222 leq 2 echo kleinergleich" erkennt anhand der "." nicht, dass 12.234.222 "größergleich" ist als zwei.
Der Linke wert wird in meinem Script enstpricht einer sich ständig änderenden Dateigröße, die mir "dir c:\<datei> /O:S"aus dem Dateisystem ausgelesen wird.

Wie bekomme ich der IF Anweisung beigebracht, dass er die mit Punkten formatierte Zahl wie eine normale Zahl behandelt?

Content-Key: 48543

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

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

Member: miniversum
miniversum Jan 11, 2007 at 16:59:31 (UTC)
Goto Top
Du kannst ja die Punkte einfach weg lassen:

set size=12.234.222

if %size:.=% leq 2 echo kleinergleich

So überprüfst du dann auf Byte Größe. Die 2 halt dem entsprechend durch 2000000 ersetzen wenn du das prüfen willst.

miniversum
Member: Biber
Biber Jan 11, 2007 at 17:38:05 (UTC)
Goto Top
...oder, wenn Du das Problem stressärmer lösen willst, dann ändere:
JETZT: dir c:<datei> /O:S .......in...
BESSER: dir c:<datei> /O:S /-C

...Dann werden die DIR-Größenangaben ohne Tausenderpunkte angezeigt.

Sozusagen als Zahlen und Du könntest diese mit "SET /A" einer Variable zuweisen und "echte" Vergleiche größer/kleiner damit machen.

Im Moment ist der Titel Deines Beitrags pures Wunschdenken - Du vergleichst Strings. face-wink

Gruß
Biber
Member: emjott
emjott Jan 12, 2007 at 09:27:56 (UTC)
Goto Top
Besten Dank Biber!

Mein Problem gilt als gelöst face-wink