hummel85
Goto Top

Eingabe in Schleife

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.

Content-Key: 32758

Url: https://administrator.de/contentid/32758

Ausgedruckt am: 28.03.2024 um 14:03 Uhr

Mitglied: 8644
8644 18.05.2006 um 09:13:13 Uhr
Goto Top
Moin,

hast du dir das schon reingezogen?


Psycho
Mitglied: Hummel85
Hummel85 18.05.2006 um 09:25:52 Uhr
Goto Top
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
fachinformatiker 18.05.2006 um 10:18:56 Uhr
Goto Top
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
Hummel85 18.05.2006 um 10:54:46 Uhr
Goto Top
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
Biber 18.05.2006 um 14:39:07 Uhr
Goto Top
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.

:: --- snipp ForL-exam.bat
@echo off & setlocal
Set /a "art_Max=3" && Rem Beispiel: sig_art3 ist höchste sig_Art  
Set /a "Ls_Max=9" && Rem Beispiel: max 9 Ls-Signale  
For /l %%a in (1,1,%art_Max%) do (
    For /l %%b in (1,1,%Ls_max%) do (
      echo set /p sig_art%%a_Ls%%b=Signal LS%%b?:
      echo set /p art%%a_Ls%%b=Ls%%b?:
    ))
goto :eof    
::---- snapp forL-exam.bat

Zweite Frage (prüfen auf numerisch).
Ja. Aber nach der Eingabe, nicht während.
Beispiel:
>set /P "num2=Bitte Zahl eingeben: "  
Bitte Zahl eingeben: fsda

(variable num2 hat den Wert fsda)
>set /a num2=%num2%+0
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
Hummel85 19.05.2006 um 06:18:15 Uhr
Goto Top
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