gelöst Batch erkennt eine Zahlenfolge nicht als gültige Zahl (Evtl. Umformen von String auf Integer)

Mitglied: BatchCoder

BatchCoder (Level 1) - Jetzt verbinden

16.10.2020, aktualisiert 22:24 Uhr, 370 Aufrufe, 9 Kommentare

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
Mitglied: mbehrens
16.10.2020 um 22:15 Uhr
Zitat von BatchCoder:

Wenn ich jetzt versuche mit diesen Zahlen weiter zu rechnen, bekomme ich immer eine Fehlermeldung, dass
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?

In dieser Sprache ist nicht möglich mit Hilfe einer Subtraktion von einer Zeichenkette etwas abzuziehen.
Bitte warten ..
Mitglied: rubberman
LÖSUNG 16.10.2020 um 22:16 Uhr
In Zeile 2 definierst du eine Variable zahl die du dann aber in Zeile 3 nicht nutzt. Warum?

Steffen
Bitte warten ..
Mitglied: TK1987
LÖSUNG 16.10.2020 um 22:16 Uhr
Moin,

Zitat von BatchCoder:
Ich bin was das Thema Batch angeht noch ein ziemlicher Anfänger.
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%.

Gruß Thomas
Bitte warten ..
Mitglied: BatchCoder
16.10.2020 um 22:20 Uhr
Sorry, hab mich verschrieben.
Zeile 3 sollte eigentlich folgendermaßen aussehen:
Bitte warten ..
Mitglied: rubberman
LÖSUNG 16.10.2020 um 22:29 Uhr
Dann funktioniert dein Code. Das Ergebnis ist 75 wie erwartet.

Steffen
Bitte warten ..
Mitglied: BatchCoder
16.10.2020, aktualisiert um 22:35 Uhr
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.

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.

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%.

Habs schon geändert. Ich weis, ich hab ausversehen statt %zahl% in der 3. Zeile %string% benutzt.
Bitte warten ..
Mitglied: TK1987
16.10.2020 um 22:48 Uhr
Zitat von BatchCoder:
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.
Bitte warten ..
Mitglied: rubberman
16.10.2020 um 22:52 Uhr
Hat er schon mehrfach gelesen (auch von mir).

Steffen
Bitte warten ..
Mitglied: mbehrens
16.10.2020 um 22:54 Uhr
Zitat von BatchCoder:

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
Bitte warten ..
Heiß diskutierte Inhalte
Router & Routing
Cisco RIPv1 RIPv2
MrLabelFrageRouter & Routing26 Kommentare

Hallo Zusammen, ich muss nochmal auf eine schon behandelte Frage eingehen. Bitte jemand, der auch den Cisco Paket Tracer ...

Schulung & Training
IT Ausbildung
gelöst IntershipFrageSchulung & Training20 Kommentare

Hallo Leute, ist diese Ausbildung etwas für den IT-Einstig? Willkommen bei der GFN! Arbeitsuchende Berufstätige Kostenträger Über uns Jobs ...

LAN, WAN, Wireless
RJ45 Buchsen Verbindung
gelöst DennisAdm1nFrageLAN, WAN, Wireless17 Kommentare

Ich habe als Aufgabe bekommen die LAN-Verbindung in einem Haus zu fixen, dabei ist mir aufgefallen, dass der RJ45-Stecker ...

LAN, WAN, Wireless
Suche Access Point Wandhalterung
gelöst EZimmerFrageLAN, WAN, Wireless11 Kommentare

Einen schöne guten Tag, wir haben uns bei einer Ausschreibung beteiligt und sind nun auch der Suche nach folgendem ...

Windows 10
Windows10 Hilfsprogramme endgültig löschen
istike2FrageWindows 1011 Kommentare

Hallo, wir sind gerade dabei mit Windows OOBE ein Image vorzubereiten. Wir würden gerne Xbox, HP Hilfsprogramme, Cortana usw. ...

Windows 10
Windows 10 NTP Zeitsynchronisation Windows Domäne (local cmos clock) Uhrzeit und Datum synchronisiert nicht
gelöst frunkyFrageWindows 1010 Kommentare

Hallo Zusammen, ich habe in meiner Domäne (Windows Server 2019) mit Windows 10 Pro als Clients Probleme mit der ...

Ähnliche Inhalte
Microsoft Office

Excel 2013 Zahl aus einem String auslesen

DerSkipperFrageMicrosoft Office3 Kommentare

Hallo zusammen. für eine Reorg in der Firma ändern sich die Nummern aller OE-Einheiten in allen Hierarchien. Ebenso sollen ...

Batch & Shell

Batch String kürzen

gelöst BarthinatorFrageBatch & Shell2 Kommentare

Moin zusammen, ich stehe vor einem Problem bei dem ich leider nicht weiterkomme. Ich habe eine Textdatei in der ...

Batch & Shell

Batch String Buchstaben tauschen

gelöst BarthinatorFrageBatch & Shell2 Kommentare

Moin zusammen, ich stehe leider gerade wieder vor einem Problem mit meinem Skript: in meinem letzten Beitrag ging es ...

Batch & Shell

Batch um String innerhalb Dateiname zu ändern

gelöst lordofremixesFrageBatch & Shell3 Kommentare

Hallo zusammen, Ich suche eine Batch / Powershell, die folgendes macht: Ausgangslage: Ordner mit ca 100 Dateien in z.B. ...

Java

Von Delphi String zu Java String

GreenDinoFrageJava1 Kommentar

Hallo zusammen! Ich bin dabei Delphicode in Javacode zu übertragen. Frage: ist '<text>' in Delphi equivalent zu "<text>" in ...

Datenbanken

MSSQL Text in Zahl umwandeln

gelöst EricAG3FrageDatenbanken1 Kommentar

Hallo zusammen, folgende Tabelle sei gegeben. Menge 5,5 2,5 - 2,5 Das Feld Menge ist vom varchar. Ich möchte ...

Berechtigungs- und IdentitätsmanagementBerechtigungs- und IdentitätsmanagementWebdienste und -serverWebdienste und -serverDatenbankenDatenbankenMonitoring & SupportMonitoring & SupportHybrid CloudHybrid CloudSmall Business ITSmall Business IT