gelöst Eingabe in Schleife

Mitglied: Hummel85

Hummel85 (Level 1)

18.05.2006, aktualisiert 19.05.2006, 5112 Aufrufe, 6 Kommentare

Guten Morgen,

ich habe wieder mal ein kleines Problem mit einer Batch.

Kurze Erläuterung: Ich Brauche eine Batch in der einige eingaben machen muss, und die Batch mir dann daraus eine .ini schreibt.

Komma ja so weit klar aber das Problem was ich jetzt habe ist das ich keine Lust habe eine batch mit Hundertenderten "set /p" befehlen. Will das ganze in eine Schleife packen da sich das ganze wiederholt.

Hier ein kleiner Einblick:

set /p sig_art1_Ls1=Signal LS1?:
set /p art1_Ls1=Ls1?:
set /p sig_art1_Ls2=Signal LS2?:
set /p art1_Ls2=Ls2?:
set /p sig_art1_Ls3=Signal LS3?:
set /p art1_Ls3=Ls3?:
set /p sig_art1_Ls4=Signal LS4?:
set /p art1_Ls4=Ls4?:
set /p sig_art1_Ls5=Signal LS5?:
set /p art1_Ls5=Ls5?:
set /p sig_art1_Ls6=Signal LS6?:
set /p art1_Ls6=Ls6?:
set /p sig_art1_Ls7=Signal LS7?:
set /p art1_Ls7=Ls7?:
set /p sig_art1_Ls8=Signal LS8?:
set /p art1_Ls8=Ls8?:
set /p sig_art1_Ls1=Signal LS1?:
set /p art2_Ls1=Ls1?:
set /p sig_art1_Ls2=Signal LS2?:
set /p art2_Ls2=Ls2?:
set /p sig_art1_Ls3=Signal LS3?:
set /p art2_Ls2=Ls3?:
set /p sig_art_Ls4=Signal LS24?:
set /p art2_Ls4=Ls4?:
set /p sig_art2_Ls5=Signal LS5?:
set /p art2_Ls5=Ls5?:
set /p sig_art2_Ls6=Signal LS6?:
set /p art2_Ls6=Ls6?:
set /p sig_art2_Ls7=Signal LS7?:
set /p art2_Ls7=Ls7?:
set /p sig_art2_Ls8=Signal LS8?:
set /p art2_Ls8=Ls8?:
..........

Und es geht noch viel weiter. Kann mir jetzt jemand sagen wie ich das einfacher machen kann? Habe mir gedacht in einer Schleife aber mit Schleifen habe ich noch nicht gearbeitet.

Wäre nett wenn mir jemand einfach mal was schreibt ich werde es dann an den Rest selber anpassen.
Mitglied: 8644
18.05.2006 um 09:13 Uhr
Mitglied: Hummel85
18.05.2006 um 09:25 Uhr
Hi Psycho Dad,

danke für die schnelle Antwort. Aber leider bringt mich das nicht weiter.

Ich sehe in diesem TUT nicht das was ich brauche. Da steht zwar was über Schleifen aber nicht wie ich die Aufbaue. Oder hab ich das jetzt übersehen.
Mitglied: fachinformatiker
18.05.2006 um 10:18 Uhr
for ($variable=$startwert;bedingung solange Schleife ausgeführt wird(z.b.$variable<=$endwert);was soll nach jedem Schleifendurchlauf getan werden(z.b. $variable++)
Mitglied: Hummel85
18.05.2006 um 10:54 Uhr
Danke.

Habe noch eine Frage. Kann ich eine If abfrage mache welche kontrolliert ob der eingegebene Wert eine Zahl und kein Buchstabe(oder auch Wort) ist?
Mitglied: Biber
18.05.2006 um 14:39 Uhr
Moin Hummel85,

hier ein Beispiel zur ersten Frage.
Zählvariablen heißen %%a und %%b für sig_art[%%a]_Ls[%%b]
Das "echo" nach dem test rausnehmen..ist nur zur Demo.

01.
:: --- snipp ForL-exam.bat
02.
@echo off & setlocal
03.
Set /a "art_Max=3" && Rem Beispiel: sig_art3 ist höchste sig_Art
04.
Set /a "Ls_Max=9" && Rem Beispiel: max 9 Ls-Signale
05.
For /l %%a in (1,1,%art_Max%) do (
06.
    For /l %%b in (1,1,%Ls_max%) do (
07.
      echo set /p sig_art%%a_Ls%%b=Signal LS%%b?:
08.
      echo set /p art%%a_Ls%%b=Ls%%b?:
09.
    ))
10.
goto :eof    
11.
::---- snapp forL-exam.bat
Zweite Frage (prüfen auf numerisch).
Ja. Aber nach der Eingabe, nicht während.
Beispiel:
01.
>set /P "num2=Bitte Zahl eingeben: "
02.
Bitte Zahl eingeben: fsda
03.

04.
(variable num2 hat den Wert fsda)
05.
>set /a num2=%num2%+0
06.
0
Wenn Du mit set /a ...= ...+0 addierst und als Ergebnis 0 herauskommt, dann war der Wert nicht numerisch.

Grüße
Biber
[Edit]
..., dann war der Wert nicht numerisch.
Oder vorher auch 0. *gg
[/Edit]
Mitglied: Hummel85
19.05.2006 um 06:18 Uhr
Guten Morgen Biber.


Du hast mir wieder mal sehr geholfen. Auch wenn die Kontrolle ob die Eingabe numerisch, sehr einfach eigentlich ist, ist sie doch sehr effektiv. Hätte ich also selber drauf kommen müssen aber naja. Trotzdem noch mal vielen dank an dich und natürlich auch an die anderen beiden ( Psycho Dad und fachinformatiker) ihr habt mir auch auf eine weise sehr geholfen.


Grüße
Hummel
Titel: Eingabe in Schleife
Content-ID: 32758
Art des Inhalts: Frage
Ausgedruckt am: 15.11.2019 um 19:37:55 Uhr
URL: https://administrator.de/contentid/32758