Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst (Batch) Einzelne Zeile auslesen?

Mitglied: Budders

Budders (Level 1) - Jetzt verbinden

20.04.2013 um 11:05 Uhr, 3420 Aufrufe, 3 Kommentare, 1 Danke

Ich bin gerade dabei eine Art Tamagochi in Batch zu programmieren und habe ein Problem im "Shop"

Guten Tag,
ich habe gestern begonnen einen Tamagochi in Batch zu programmieren.
Nun möchte ich für den Shop Bereich die Preise aus einer Datei auslesen, es ist jeweils nur eine Zahl pro Zeile in der entsprechenden Datei.
Ich habe bereits Biber's LineToVar gefunden, doch damit habe ich das Problem, dass es eigene Sprungmarken verwendet..
Wenn es eine Möglichkeit gibt zur zuletzt verwendeten Sprungmarke zurück zu springen wäre das natürlich großartig und das Problem wäre gelöst.
Hier ist mal ein Teil des Codes.
01.
echo Was moechtest du kaufen? 
02.
echo ======================= 
03.
echo 1) Schokolade (1 Hunger) 
04.
echo 2) Backkartoffel (5 Hunger) 
05.
echo 3) Allyoucaneat (10 Hunger) 
06.
echo Du hast %money% Geld 
07.
set /p choice3= 
08.
 
09.
if "%choice3%"=="1" ( 
10.
 
11.
Hier muss irgendwie die Zeile 1 aus der Datei "price" ausgelsen und in die Variable %price% geschrieben werden.. 
12.
 
13.
if %money% LSS %price% goto fail 
14.
set /a money=%money% - %price% 
15.
ping -n 2 127.0.0.1 > NUL 
16.
echo Kauf erfogreich 
17.
goto shop 
18.
)
Wenn jemand eine Lösung für das Problem hat, so wie ich es mir gedacht habe oder anders (solang es funktioniert ist mir egal WIE es gelöst wird ^^ ) wäre ich demjenigen sehr dankbar

Vielen Dank schonmal jetzt.
MfG Budders
Mitglied: rubberman
20.04.2013 um 11:43 Uhr
Hallo Budders, willkommen im Forum.

Mal was zum Testen. In price.txt befinden sich die Zeilen
10
Der Batchcode:
01.
@echo off &setlocal 
02.
set /a "money=8" 
03.
 
04.
echo Was moechtest du kaufen? 
05.
echo ======================= 
06.
echo 1) Schokolade (1 Hunger) 
07.
echo 2) Backkartoffel (5 Hunger) 
08.
echo 3) Allyoucaneat (10 Hunger) 
09.
echo Du hast %money% Geld 
10.
set /p choice3= 
11.
 
12.
call :getPrice "price.txt" "%choice3%" price 
13.
 
14.
if %money% LSS %price% ( 
15.
  call :fail 
16.
) else ( 
17.
  set /a money-=%price% 
18.
  ping -n 2 127.0.0.1 > NUL 
19.
  echo Kauf erfogreich 
20.
  call :shop 
21.
22.
pause 
23.
exit /b 
24.
:: Ende des Hauptcodes. 
25.
 
26.
 
27.
:: Hole Preis 
28.
:getPrice FileName Line VarName 
29.
<"%~1" (for /l %%i in (1 1 %~2) do set /p "%~3=") 
30.
exit /b 
31.
 
32.
:: Bei Fehler 
33.
:fail 
34.
echo Du hast nicht genug Geld. 
35.
echo Was weiter passieren soll weiss ich nicht. 
36.
exit /b 
37.
 
38.
:: Shop 
39.
:shop 
40.
echo Du hast %money% Geld. 
41.
echo Was weiter passieren soll weiss ich nicht. 
42.
exit /b
Versuche mal ohne GOTOs auszukommen. Damit bekommst du Spaghetticode, bei dem du irgendwann selbst nicht mehr weißt, wohin überall gesprungen wird. Versuche es mit CALL :Label, mit EXIT /B kehrst du an die Stelle zurück, an dem der Aufruf stattgefunden hat.
GOTO ist nur was für Schleifen, die mit FOR nicht abzubilden sind.

Grüße
rubberman
Bitte warten ..
Mitglied: Budders
20.04.2013 um 12:00 Uhr
Ich bin beeindruckt. :o
vielen Dank für die Hilfe, es funktioniert super!
Und danke für den Tipp mit CALL und EXIT /B!
Ich habe nie was anderes gelernt bzw. mir was anderes beigebracht, da ich bis heute immer gut damit zurecht gekommen bin, aber man lernt ja nie aus

Danke und einen schönen Samstag wünsche ich.
Bitte warten ..
Mitglied: rubberman
20.04.2013 um 12:05 Uhr
Hallo Budders,

gern geschehen

Du bist nicht der einzige, der mit Hunderten GOTOs in Batch arbeitet. Das ist einer der Gründe warum Batch in Verruf gekommen ist. Man wird regelrecht verleitet Spaghetticode zu schreiben. Aus vielen anderen Sprachen wurde GOTO rigoros verbannt. Wenn du also mal vorhast eine andere Sprache zu lernen, wirst du es sehr schwer haben Lösungen zu finden, die ohne GOTO auskommen. Also am besten gar nicht erst angewöhnen

Grüße und ebenfalls ein schönes WE
rubberman
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

BATCH: Einzelne Zeilen per Batch auslesen und Daten in Datei importieren

gelöst Frage von thurboBatch & Shell1 Kommentar

Hallo liebe Gemeinde, freu mich über meine Erste Frage und hoffe auf Antworten. ;-) Habe Kundendaten unseres alten Servers ...

Batch & Shell

Mit batch zeilen auslesen

gelöst Frage von keksegrillerBatch & Shell2 Kommentare

Hallihallo, ich fange gerade an mit batch-Dateien zu arbeiten und komme trotz stundenlangem ausprobieren und googlen leider nicht mehr ...

Batch & Shell

In Batch mehrere Zeilen auslesen ?!?

gelöst Frage von JanInfoHDBatch & Shell2 Kommentare

Ich habe in Programm in Batch geschrieben, doch es ließt aus einer .txt-Datei immer nur die erste Zeile, Was ...

Batch & Shell

Mit Batch eine einzelne Zeile in einer anderen Farbe darstellen?!

Frage von noah1400Batch & Shell2 Kommentare

Hallo Gibt es ein Möglichkeit mit Batch mit dem befehl "echo" oder mit einem anderen eine einzelne Zeile in ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 1 TagWindows 105 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 1 TagAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 1 TagHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 2 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Windows Server
NTFS Berechtigungen Ordnerstruktur
Frage von hukahu23489Windows Server11 Kommentare

Hallo, ich bin seit kurzem in einer neuen IT-Abteilung und bin über das Berechtigungskonzept des Unternehmens sehr schockiert. Ich ...

Hyper-V
Hyper-V mit altem XEON-Server. Was ist falsch?
Frage von LollipopHyper-V11 Kommentare

Hallo Bin etwas frustriert. Kleinbetrieb, ca. 15 PC's, 2 Stk. Server mit einigen virtuellen PC's für Fernwartung, VaultServer für ...