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-ID: 48543

Url: https://administrator.de/forum/batch-problem-bei-formatieren-zahlen-mit-if-leq-48543.html

Ausgedruckt am: 09.04.2025 um 09:04 Uhr

miniversum
miniversum 11.01.2007 um 17:59:31 Uhr
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
Biber
Biber 11.01.2007 um 18:38:05 Uhr
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
emjott
emjott 12.01.2007 um 10:27:56 Uhr
Goto Top
Besten Dank Biber!

Mein Problem gilt als gelöst face-wink