Nicht Funktionierendes BATch Programm
Hallo,
ich habe ein BATch Programm geschrieben,
das den wert eines wiederstandes errechnen soll aber
es Funktioniert nicht.
kann mir da irgendjemand Helfen?
Schon mal im vorraus Danke.
es funktioniert nicht
ich habe ein BATch Programm geschrieben,
das den wert eines wiederstandes errechnen soll aber
es Funktioniert nicht.
kann mir da irgendjemand Helfen?
Schon mal im vorraus Danke.
@ echo off
color 0
mode con lines=30 cols=80
chcp 1252>nul
set ue=ü
set ae=ä
set oe=ö
set Uue=Ü
set Aae=Ä
set Ooe=Ö
set ss=ß
set Ohm=Ohm
chcp 850>nul
title Widerstanderrechner
:main
@ echo here main
cls
echo.
echo.
echo Wiederstandsberechner in %Ohm%
echo.
echo Bitte schreiben sie eine 4 f%ue%r einen wiederstand mit 4 Farben und
echo eine 5 f%ue%r einen wiederstand mit 5 Farben und
echo dr%ue%cken sie anschlie%ss%end auf Enter
echo Um das Programm zu schlie%ss%en schreiben sie S
echo.
echo.
echo.
echo.
echo.
echo.
set/p klick=
if %klick%==5 goto 5
if %klick%==4 goto 4
if %klick%==S goto schliessen
if %klick%==s goto schliessen
:5
cls
echo.
echo.
echo Wiederstandsberechner in %Ohm%
echo.
echo.
echo Bitte beacht sie die Tabelle rechts
echo.
echo Die f%ue%nfte farbe wird nicht berechnet,
echo dadurch sie f%ue%r das Ergebnis nicht rellevant ist.
echo Zahlen der f%ae%rben von 1 und 3 direkt hintereinnander schreibe.
echo.
echo.
set /p Farbe1=Erste Farbe :
call :sub1
set /p Farbe2=Zweite Farbe :
call :sub1
set /p Farbe3=Dritte Farbe :
call :sub1
set /p multiplikator=Vierte Farbe :
call :sub2
echo.
set /a Erg= %Farbe1% %Farbe2% %Farbe3%*%multiplikator%
echo.
echo Der Wiederstandswert betr%ae%gt %Erg% %Ohm%
echo.
set/p klick=
if %klick%==S goto schliessen
pause>1
echo.
echo.
echo Fuer die umrechnung in Kilo-, Mega-, Giga- und Tera-%Ohm%.
echo Schreiben sie jetzt eine der Einheiten und dr%ue%cken sie enter.
echo Falls das Ergebnis verschwindet dr%ue%cken sie so oft enter bis
echo ihr uhrspr%ue%ngliches Ergebnis wieder komt und
echo versuchen sie es mit einener kleineren einheit
echo.
echo.
set/p klick=
if %klick%==Kilo-R goto Kilo
if %klick%==Kilo goto Kilo
if %klick%==kilo-R goto Kilo
if %klick%==kilo goto Kilo
if %klick%==K goto Kilo
if %klick%==k goto Kilo
if %klick%==Mega-R goto Mega
if %klick%==Mega goto Mega
if %klick%==mega-R goto Mega
if %klick%==mega goto Mega
if %klick%==M goto Mega
if %klick%==m goto Mega
if %klick%==Giga-R goto Giga
if %klick%==Giga goto Giga
if %klick%==giga-R goto Giga
if %klick%==giga goto Giga
if %klick%==G goto Giga
if %klick%==g goto Giga
if %klick%==Tera-R goto Tera
if %klick%==Tera goto Tera
if %klick%==tera-R goto Tera
if %klick%==tera goto Tera
if %klick%==T goto Tera
if %klick%==t goto Tera
if %klick%==S goto schliessen
if %klick%==s goto schliessen
echo.
goto main
:4
cls
echo.
echo.
echo Wiederstandsberechner in %Ohm%
echo.
echo.
echo Bitte beacht sie die Tabelle rechts
echo.
echo Die Vierte farbe wird nicht berechnet,
echo dadurch sie f%ue%r das Ergebnis nicht rellevant ist.
echo Zahlen der f%ae%rben von 1 und 2 direkt hintereinnander schreibe.
echo.
set /p Farbe1=Erste Farbe :
call :sub1
set /p Farbe2=Zweite Farbe :
call :sub1
set /p multiplikator=Dritte Farbe :
call :sub2
echo.
set /a Erg= %Farbe1% %Farbe2%*%multiplikator%
echo.
echo Der Wiederstandswert betr%ae%gt %Erg% %Ohm%
set/p klick=
if %klick%==S goto schliessen
if %klick%==s goto schliessen
pause>1
echo.
echo.
echo F%ue%r die umrechnung in Kilo-, Mega-, Giga- und Tera-%Ohm%.
echo Schreiben sie jetzt eine der Einheiten und drücken sie enter.
echo Falls das Ergebnis verschwindet dr%ue%cken sie so oft enter bis
echo ihr uhrspr%ue%ngliches Ergebnis wieder komt und
echo versuchen sie es mit einener kleineren einheit
echo.
echo.
set/p klick=
if %klick%==Kilo-R goto Kilo
if %klick%==Kilo goto Kilo
if %klick%==kilo-R goto Kilo
if %klick%==kilo goto Kilo
if %klick%==K goto Kilo
if %klick%==k goto Kilo
if %klick%==Mega-R goto Mega
if %klick%==Mega goto Mega
if %klick%==mega-R goto Mega
if %klick%==mega goto Mega
if %klick%==M goto Mega
if %klick%==m goto Mega
if %klick%==Giga-R goto Giga
if %klick%==Giga goto Giga
if %klick%==giga-R goto Giga
if %klick%==giga goto Giga
if %klick%==G goto Giga
if %klick%==g goto Giga
if %klick%==Tera-R goto Tera
if %klick%==Tera goto Tera
if %klick%==tera-R goto Tera
if %klick%==tera goto Tera
if %klick%==T goto Tera
if %klick%==t goto Tera
if %klick%==S goto schliessen
if %klick%==s goto schliessen
echo.
pause>1
goto main
:Kilo
set /a k=%Erg%/1000
echo der Wiedersatandswert betr%ae%gt %k% Kilo-%Ohm%
set/p klick=
if %klick%==S goto schliessen
if %klick%==s goto schliessen
pause>1
goto main
:Mega
set /a m=%Erg%/1000000
echo der Wiederstandswert betr%ae%gt %m% Mega-%Ohm%
set/p klick=
if %klick%==S goto schliessen
if %klick%==s goto schliessen
pause>1
goto main
:Giga
set /a g=%Erg%/1000000000
echo der Wiederstandswert betr%ae%gt %g% Giga-%Ohm%
set/p klick=
if %klick%==S goto schliessen
if %klick%==s goto schliessen
pause>1
goto main
:Tera
set /a t=%Erg%/1000000000000
echo der Wiederstandswert betr%ae%gt %t% Tera-%Ohm%
set/p klick=
if %klick%==S goto schliessen
if %klick%==s goto schliessen
paus>1
goto main
:schliessen
echo.
echo Wollen sie wirklich das Programm schlie%ss%en?
echo J f%ue%r Ja und N f%ue%r Nein
echo.
echo.
set/p klick=
if %klick%==J goto Ja
if %klick%==N goto Nein
if %klick%==j goto Ja
if %klick%==n goto Nein
pause>1
:sub1
SET schwarz=0
SET braun=1
SET rot=2
SET orange=3
SET gelb=4
SET grün=5
SET blau=6
SET lila=7
SET grau=8
SET weiß=9
goto :eof
:sub2
SET silber=-100
SET gold=-10
SET schwarz=0
SET braun=10
SET rot=100
SET orange=1000
SET gelb=10000
SET grün=100000
SET blau=1000000
SET lila=10000000
SET grau=100000000
SET weiß=1000000000
goto :eof
:Nein
goto main
:Ja
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 490573
Url: https://administrator.de/forum/nicht-funktionierendes-batch-programm-490573.html
Ausgedruckt am: 23.04.2025 um 16:04 Uhr
10 Kommentare
Neuester Kommentar
Ich lese das jetzt nicht alles durch, nur, weil vielleicht eine Zeile nicht funktioniert.
Für welches Betriebssystem? Wie weit kommt das Programm? Kommt noch die Auswahl der Anzahl der Ringe des Widerstands? Wo geht es nicht weiter oder was zeigt er nicht richtig an?
Wie weit bist Du selbst mit der Eingrenzung gekommen?
Für welches Betriebssystem? Wie weit kommt das Programm? Kommt noch die Auswahl der Anzahl der Ringe des Widerstands? Wo geht es nicht weiter oder was zeigt er nicht richtig an?
Wie weit bist Du selbst mit der Eingrenzung gekommen?
ich habe ein BATch Programm geschrieben, das den wert eines wiederstandes errechnen soll
Warum macht man sowas???
Es gibt Tools die deutlich zeitgemäßer und für den Zweck auch besser geeignet sind. Die Powershell zum Beispiel oder auch VBScript.
Hier und da ist man auch heute tatsächlich mit Batch noch schneller am Ziel. Aber ganz sicher nicht bei sowas wie dem da oben...
Manuel
PS:
Ich echt jedes Mal erstaunt, wenn hier eine Batch-Frage auftaucht was im Jahr 2019 noch alles damit gelöst werden soll.
Hallo,
Und hier etwas Lesefutter bzgl. Windows Batch:
Gruss Penny.
Und hier etwas Lesefutter bzgl. Windows Batch:
- Windows Batch Grundlagen
- Batch - ein paar Basics die man kennen sollte
- Workshop Batch for Runaways - Part I
- Workshop Batch for Runaways - Part II
- Workshop Batch for Runaways - Part III
- HowTo - Wie man Subroutinen in Batchfiles erstellt
- Tutorial zur FOR-Schleife
Gruss Penny.
In Zeile 58 hast Du die Variable mit einem einzugebenden Wert gefüllt. Eine Zeichenfolge z.B. rot. Das heißt in der Variable Farba1 befindet sich die Zeichenfolge „rot“.
Dann springst Du zu sub1, in der weitere Variablen erzeugt werden z.B. Variable rot hat den Inhalt bzw den Wert 2.
Nun befinden sich im Speicher zwei Variablen:
Farbe1=„rot“
rot=2
Danach verwendest Du in der Zusammensetzung der Farben wieder die Variable Farbe1, die immer noch „rot“ beinhaltet. Und so geht es weiter. Die Variable rot mit dem Inhalt 2 wird gar nicht weiter ausgewertet oder verwendet.
Was Dir fehlt ist die Auswertung der Eingabe, was in die Variable Farbe1 passiert ist. Also sowas:
Wenn die Variable Farbe1 den Inhalt „rot“ hat, dann soll Variable Ring1 eine 2 bekommen. Danach musst Du beim zusammensetzen nicht den Inhalt von Farbe1, sondern den Inhalt von Ring1 verwenden.
Dann springst Du zu sub1, in der weitere Variablen erzeugt werden z.B. Variable rot hat den Inhalt bzw den Wert 2.
Nun befinden sich im Speicher zwei Variablen:
Farbe1=„rot“
rot=2
Danach verwendest Du in der Zusammensetzung der Farben wieder die Variable Farbe1, die immer noch „rot“ beinhaltet. Und so geht es weiter. Die Variable rot mit dem Inhalt 2 wird gar nicht weiter ausgewertet oder verwendet.
Was Dir fehlt ist die Auswertung der Eingabe, was in die Variable Farbe1 passiert ist. Also sowas:
Wenn die Variable Farbe1 den Inhalt „rot“ hat, dann soll Variable Ring1 eine 2 bekommen. Danach musst Du beim zusammensetzen nicht den Inhalt von Farbe1, sondern den Inhalt von Ring1 verwenden.
Moin,
Das ist doch innerlich der gleiche Quatsch, wie hier: In einer batch datei einen wert definieren
Gruß
em-pie
Das ist doch innerlich der gleiche Quatsch, wie hier: In einer batch datei einen wert definieren
Gruß
em-pie