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

Ich hab ein Problem dabei, eine in batch gesetzte Variable weiter zu geben.

Mitglied: RockYourLife

RockYourLife (Level 1) - Jetzt verbinden

08.01.2011 um 23:39 Uhr, 2896 Aufrufe, 5 Kommentare

Problem bim weiterverarbeiten einer zuvor gesetzten Variable.

Hallo und schoenen Tag

ich sitze seit stunden an dem Problem, dass ich eine Variable in einer batch setzten will, die von einer anderen Variable abhaengig ist.

Hier meine batch:




rem ----------------------------------------------------------------------------------------------------------------------------------------------------------------------
rem ----------------------------------------------------------------------------------------------------------------------------------------------------------------------
rem ----------------------------------------------------------------------------------------------------------------------------------------------------------------------

@echo off
:start
echo Iphone type "1"
echo Ipod Touch type "2"
echo.
set /p model="Set your model: (type 1 or 2):"
if %model%==1 goto iphone_s1
if %model%==2 goto ipod_s1
cls
goto s_0
:iphone_s1
echo.
echo Iphone type "c"
echo Iphone 3G type "3g"
echo Iphone 3GS type "3gs"
echo Iphone 4 type "4"
echo.
set /p model2="Which Iphone? Its:"
if %model2%==c goto iphone_s2_c
if %model2%==3g goto iphone_s2_3g
if %model2%==3gs goto iphone_s2_3gs
if %model2%==4 goto iphone_s2_4
cls
goto iphone_s1

rem --------------------------------------------Iphone------------------------------------------------
:iphone_s2_c
echo.
echo 1.0
echo 1.0.1
echo 1.0.2
echo 1.1.1
echo 1.1.2
echo 1.1.3
echo 1.1.4
echo 2.0
echo 2.0.1
echo 2.0.2
echo 2.1
echo 2.2
echo 2.2.1
echo 3.0
echo 3.0.1
echo 3.1
echo 3.1.2
echo 3.1.3
echo.
set /p fw="type in your firmware: "
goto results
rem --------------------------------------------Iphone 3G----------------------------------------------
:iphone_s2_3g
echo.
echo 2.0
echo 2.0.1
echo 2.0.2
echo 2.1
echo 2.2
echo 2.2.1
echo 3.0
echo 3.0.1
echo 3.1
echo 3.1.2
echo 3.1.3
echo 4.0
echo 4.0.1
echo 4.1
echo 4.2
echo 4.2.1
echo.
set /p fw="type in your firmware: "
goto results
rem --------------------------------------------Iphone 3GS---------------------------------------------
:iphone_s2_3g
echo.
echo 3.0
echo 3.0.1
echo 3.1
echo 3.1.2
echo 3.1.3
echo 4.0
echo 4.0.1
echo 4.1
echo 4.2
echo 4.2.1
echo.
set /p fw="type in your firmware: "
goto results
rem --------------------------------------------Iphone 4-----------------------------------------------
:iphone_s2_3g
echo.
echo 4.0
echo 4.0.1
echo 4.1
echo 4.2
echo 4.2.1
echo.
set /p fw="type in your firmware: "
goto results




if %model%==1 goto aaa
if %model2%==c set re_2=" "
if %model2%==3g set re_2="3G"
if %model2%==3gs set re_2="3GS"
if %model2%==4 set re_2="4"

:results
cls
echo You have a %re_1%.
echo Its a %re_2% %re_1%.
echo It has the firmware %fw%.
echo Is this right?
echo.
echo Press any key to continue
pause>nul
cls

set programm=%re_1%-%re_2%-%fw%

echo %programm%
pause

rem ----------------------------------------------------------------------------------------------------------------------------------------------------------------------
rem ----------------------------------------------------------------------------------------------------------------------------------------------------------------------
rem ----------------------------------------------------------------------------------------------------------------------------------------------------------------------




Ich finde einfach meinen fehler nicht! >.<
Ende klappt nur die letzte der 3 benutzen Variablen!
also aus dem

set programm=%re_1%-%re_2%-%fw%
echo %programm%"

kommt nur ein mickriges
"--1.0(jenachdem was ich als FW eingegeben hab)"
raus -.-

bitte um hilfe

Mfg Rafii
Mitglied: bastla
09.01.2011 um 00:03 Uhr
Hallo RockYourLife und willkommen im Forum!

Gleich vorweg: Es wäre wesentlich einfacher, sich auf Deinen Code zu beziehen, wenn dieser entsprechend formatiert wäre ...
Nicht für das Problem verantwortlich, aber auf jeden Fall sinnvoll: Ergänze am Anfang des Batches ein "setlocal", also etwa als Zeile 1:
@echo off & setlocal
Damit "vergisst" der CMD-Interpreter am Ende des Batches alle an den Variablen vorgenommenen Änderungen - nicht zuletzt in der Testphase wichtig, da so nur die Werte des jeweiligen Testlaufes verwendet werden und nicht ev Überreste vorhergehender Tests (in der selben CMD-Shell).
Dass einige Sprungadressen falsch bzw fehlerhaft (":iphone_s2_3g" kommt 3 x vor) sind, hast Du ja hoffentlich selbst schon bemerkt ...
Die Zeile
if %model%==1 goto aaa
würde dafür sorgen, dass eine Zuweisung der Werte für %re_2% gleich gar nicht erfolgen kann, da bereits vorher der Sprung zum (nicht vorhandenen) Label "aaa" vorgenommen würde - wenn diese Zeile überhaupt erreicht würde ... Dazu wäre es nötig, das Label ":results" bereits davor (also zumindest 7 Zeilen vor der derzeitigen Position) zu platzieren.

Dass aber dann noch immer keine Wertzuweisung an %re_1% erfolgte, steht noch auf einem anderen Blatt ...

Grüße
bastla

[Edit] @T-Mo
Edit 4 minuten zu spät
Übertreib doch nicht so - waren doch nur 3:53 ...
[/Edit]
Bitte warten ..
Mitglied: 60730
09.01.2011 um 00:07 Uhr
moin,

2-3 tipps...

  • benutze <code> und </code> - siehe Formatierungshilfe
  • schreibe niemals @echo off, wenn du nicht aus der Testphase draussen bist
  • benutze stattdessen echo %parameter%
  • und hin und wieder eine Pause, sowohl im Programm, als auch zum denken. Ich schreibe sehr oft Stichworte aufs gute alte Papier und erst dann in die Tasten - ist deutlich schneller
  • keine Sprungziele benennen, die nicht benutzt werden. (aaa)/ipod usw.
  • prüfe, ob du Variablen überhaupt benutzt. Ein set re_1 taucht nirgendwo auf
01.
:start 
02.
echo on 
03.
rem rest wurde gesnippt 
04.
 
05.
:results 
06.
cls 
07.
echo model-model2-fw-re_1-re_2  
08.
echo %model%-%model2%-%fw%-%re_1%-%re_2% 
09.
pause 
10.
 
11.
echo You have a %re_1% . 
12.
echo Its a %re_2% %re_1% . 
13.
echo It has the firmware %fw% . 
14.
echo Is this right? 
15.
echo. 
16.
echo Press any key to continue 
17.
pause>nul 
18.
cls 
19.
 
20.
set programm=%re_1%-%re_2%-%fw% 
21.
 
22.
echo %programm% 
23.
pause

Gruß
Edit 4 minuten zu spät
Bitte warten ..
Mitglied: RockYourLife
09.01.2011 um 00:56 Uhr
Vielen dank, fuer euere hilfe
ich probiers gleich mal aus.

das mit dem "
if %model%==1 goto aaa
"
war nur ein fehler, weil ich getestet hab, ob er dann auch zu :aaa geht.
hab ich nur danach wieder vergessen weg zu machen

trotzdem vielen dank!
Bitte warten ..
Mitglied: RockYourLife
09.01.2011 um 01:04 Uhr
Ich hab mich da mit etwas vertan.
die stelle, die ihr als fehler nennt ist eigentlich:

if %model%==1 set re_1="Iphone"
if %model%==2 set re_1="Ipod Touch"
if %model2%==c set re_2=" "
if %model2%==3g set re_2="3G"
if %model2%==3gs set re_2="3GS"
if %model2%==4 set re_2="4"


das mit "goto aaa" war nur ein test, den ich vergessen hatte wieder umzuaendern.
Bitte warten ..
Mitglied: Biber
22.01.2011 um 11:27 Uhr
Moin PopYourWife,

ich weiss nich, ob es dir entgangen ist - nach deinem letzten Feedback ist irgendwie noch nicht ganz klar,
ob denn nun die Frage hinreichend beantwortet ist, ob der Schnipsel nun tut, was ein Schnipsel halt tun soll
und ob hier nun ein wasabifarbener Haken dran kann.

Bitte gib Feedback.

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Verwendung einer gesetzten Variable noch in derselben Eingabezeile

gelöst Frage von EvaEdenBatch & Shell9 Kommentare

Liebe Gemeinde, ich habe ein simples Problem: Ich muss ein paar Befehle in einer Zeile abschicken. Kein Problem, da ...

Batch & Shell

Grosses Variablen Problem ( Batch)

gelöst Frage von clragonBatch & Shell30 Kommentare

Hey Leute. Ich bin auf ein doofes problem gestossen als ich durch variablen loopen wollte, da ich mir die ...

Batch & Shell

Batch - Variablen

gelöst Frage von Marlon1Batch & Shell2 Kommentare

Hallo, Ich habe eine Frage zu Variablen. Und zwar ob es irgendwie geht das Batch mit ein IF Befehl ...

Batch & Shell

Batch-Variable rechnet immer weiter

Frage von ZwergkaninchenBatch & Shell4 Kommentare

Hallo, Leute! Ich wollte mir ein kleines Idle-Game in Batch schreiben, aber ich komm nicht weiter. Hier ist ein ...

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 2 TagenHumor (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 3 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 Server
Standortvernetzung zu einem Strato VServer (Windows)
Frage von matzefratze81Windows Server10 Kommentare

Moin, ich komme aus einem Enterprise-Umfeld und habe den Fehler gemacht, dass ich mich auf ein kleines Unternehmen eingelassen ...

Grafikkarten & Monitore
4k EIZO Monitor, Fernseher und Splitter
Frage von LerxxeyGrafikkarten & Monitore9 Kommentare

Hallo Zusammen, vielleicht könnt ihr mir bei einem Problem helfen wo ich einfach nicht mehr weiterkomme Und zwar haben ...

Microsoft Office
Freitagsfrage? Excel und CSV - Import statt öffnen
gelöst Frage von KraemerMicrosoft Office7 Kommentare

Moin zusammen, entweder fallen mir heute nicht die richtigen Wörter für Google ein, oder es geht schlicht nicht. Gibt ...

Entwicklung
Batch - Überprüfung
gelöst Frage von apex.predator24Entwicklung6 Kommentare

Hallo Zusammen Gibt es eine Möglichkeit, einen Prozess im TaskManager über eine Batch-Datei zu überprüfen ob dieser läuft oder ...