Batch erkennt eine Zahlenfolge nicht als gültige Zahl (Evtl. Umformen von String auf Integer)
Liebes Batch-Team,
ich habe momentan ein Problem mit dem "set /a"-Befehl, bzw. generell mit dem Rechnen von Zahlen.
Ich habe einen String, der Buchstaben und Zahlen enthält mit ":~4" auf eine reine Zahlenfolge gekürzt.
Wenn ich jetzt versuche mit diesen Zahlen weiter zu rechnen, bekomme ich immer eine Fehlermeldung, dass
es keine gültige Zahl ist. Ich bin was das Thema Batch angeht noch ein ziemlicher Anfänger. Ich vermute aber
die Fehlermeldung kommt daher, dass Batch die Zahl als einen falschen Datentypen identifiziert.
Iich hab aber absolut keine Ahnung was ich verändern soll, damit es funktioniert und Batch den gekürzten String als gültige Zahl,
bzw. als Integer anerkennt.
Hier ein Beispiel:
Danach kommt statt dem erwünschten Ergebnis eine Fehlermeldung oder das Ergebnis ist 0.
Hat jemand eine Idee, wie man das lösen könnte?
Oder hab ich da einen kleinen Fehler im Skript gemacht? 😬
Vielen Dank im Voraus für eure Hilfe 😀
LG BatchCoder
ich habe momentan ein Problem mit dem "set /a"-Befehl, bzw. generell mit dem Rechnen von Zahlen.
Ich habe einen String, der Buchstaben und Zahlen enthält mit ":~4" auf eine reine Zahlenfolge gekürzt.
Wenn ich jetzt versuche mit diesen Zahlen weiter zu rechnen, bekomme ich immer eine Fehlermeldung, dass
es keine gültige Zahl ist. Ich bin was das Thema Batch angeht noch ein ziemlicher Anfänger. Ich vermute aber
die Fehlermeldung kommt daher, dass Batch die Zahl als einen falschen Datentypen identifiziert.
Iich hab aber absolut keine Ahnung was ich verändern soll, damit es funktioniert und Batch den gekürzten String als gültige Zahl,
bzw. als Integer anerkennt.
Hier ein Beispiel:
set string=ZAHL100
set zahl=%string:~4%
set /a result=%zahl%-25
echo %result%
Hat jemand eine Idee, wie man das lösen könnte?
Oder hab ich da einen kleinen Fehler im Skript gemacht? 😬
Vielen Dank im Voraus für eure Hilfe 😀
LG BatchCoder
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 613504
Url: https://administrator.de/contentid/613504
Ausgedruckt am: 22.11.2024 um 04:11 Uhr
9 Kommentare
Neuester Kommentar
Wenn ich jetzt versuche mit diesen Zahlen weiter zu rechnen, bekomme ich immer eine Fehlermeldung, dass
es keine gültige Zahl ist.
es keine gültige Zahl ist.
Eine Zeichenkette ist auch keine Zahl.
Ich bin was das Thema Batch angeht noch ein ziemlicher Anfänger. Ich vermute aber
die Fehlermeldung kommt daher, dass Batch die Zahl als einen falschen Datentypen identifiziert.
Iich hab aber absolut keine Ahnung was ich verändern soll, damit es funktioniert und Batch den gekürzten String als gültige Zahl,
bzw. als Integer anerkennt.
Hier ein Beispiel:
Danach kommt statt dem erwünschten Ergebnis eine Fehlermeldung oder das Ergebnis ist 0.
Hat jemand eine Idee, wie man das Lösen könnte?
die Fehlermeldung kommt daher, dass Batch die Zahl als einen falschen Datentypen identifiziert.
Iich hab aber absolut keine Ahnung was ich verändern soll, damit es funktioniert und Batch den gekürzten String als gültige Zahl,
bzw. als Integer anerkennt.
Hier ein Beispiel:
set string=ZAHL100
set zahl=%string:~4%
set /a result=%string%-25
echo %result%
Hat jemand eine Idee, wie man das Lösen könnte?
In dieser Sprache ist nicht möglich mit Hilfe einer Subtraktion von einer Zeichenkette etwas abzuziehen.
Moin,
mal ganz im Ernst, wieso dann überhaupt Batch? Batch ist seit über 10 Jahren tot. Das jetzt noch zu lernen, macht genauso viel Sinn wie sich heute den Untertagebau anzueignen. Lern lieber gleich Powershell.
Gruß Thomas
mal ganz im Ernst, wieso dann überhaupt Batch? Batch ist seit über 10 Jahren tot. Das jetzt noch zu lernen, macht genauso viel Sinn wie sich heute den Untertagebau anzueignen. Lern lieber gleich Powershell.
Hier ein Beispiel:
Dann guck doch mal was du da tust. Du musst natürlich auch schon die Variable %zahl% beim rechnen benutzen... oder halt auch beim rechnen %string:~4%.set string=ZAHL100
set zahl=%string:~4%
set /a result=%string%-25
echo %result%
Gruß Thomas
Zitat von @BadBatchCoder:
Ich möchte mit Batch keine sonderlich spannenden Programme schreiben, sondern einfach nur kleine Skripte erstellen, die zum Beispiel automatisch Dateien in chronologischer Reihenfolge in Ordnern sortieren oder mir einfach generell viel Arbeit ersparen. Und dafür ist es mir dann auch zu schade mich extra noch mit Powershell zu befassen.
Falscher Ansatz. Auch wenn es vielleicht auf dem ersten Blick nicht den Anschein macht, Powershell ist deutlich leichter zu lernen als Batch.Ich möchte mit Batch keine sonderlich spannenden Programme schreiben, sondern einfach nur kleine Skripte erstellen, die zum Beispiel automatisch Dateien in chronologischer Reihenfolge in Ordnern sortieren oder mir einfach generell viel Arbeit ersparen. Und dafür ist es mir dann auch zu schade mich extra noch mit Powershell zu befassen.
Ich möchte mit Batch keine sonderlich spannenden Programme schreiben, sondern einfach nur kleine Skripte erstellen, die zum Beispiel automatisch Dateien in chronologischer Reihenfolge in Ordnern sortieren oder mir einfach generell viel Arbeit ersparen. Und dafür ist es mir dann auch zu schade mich extra noch mit Powershell zu befassen.
Sehr schade, vertane Zeit.
Die CMD kennt noch nicht mal reguläre Ausdrücke