Problema script .bat
Last Updated: Apr 29 2016 10:25, Started by
JaJe
, Apr 27 2016 23:11
·
0
#1
Posted 27 April 2016 - 23:11
Salutare,
Am o nelamurire, in incercarea de a invata mai multe despre script-uri, m-am lovit de o problema ce nu ii dau de cap, poate cineva imi poate explica unde gresesc. Acesta este codul: @echo off echo Alege configurarea placii de retea Wi-Fi :MENU echo. echo 1. Static echo 2. DHCP echo. echo. set /p strCHOICE=Alege: if %strCHOICE%==1 (set /p strIP=Adauga IP-ul 192.168.92. netsh interface ip set address name="Wireless Network Connection" static 192.168.92.%strIP% 255.255.255.0 192.168.92.1 netsh interface ip set dns name="Wireless Network Connection" static 192.168.92.1 ) ELSE ( if /i %strCHOICE%==static (set /p strIP=Adauga IP-ul 192.168.92. netsh interface ip set address name="Wireless Network Connection" static 192.168.92.%strIP% 255.255.255.0 192.168.92.1 netsh interface ip set dns name="Wireless Network Connection" static 192.168.92.1 ) ELSE ( if %strCHOICE%==2 (netsh interface ip set address "Wireless Network Connection” dhcp ) ELSE ( if /i %strCHOICE%==DHCP (netsh interface ip set address "Wireless Network Connection” dhcp ) ELSE ( echo. echo. echo GRESIT! alege tipul de configurare! goto :menu )))) Problema este ca nu se intampla nimic, indiferent ca aleg sa bag o adresa IP statica sau DHCP da eroare. Unde am gresit in acest caz? Multumesc. |
#2
Posted 28 April 2016 - 08:58
CE eroare?
Vezi ca ai prea multe paranteze la final, trebuie una singura. |
#3
Posted 28 April 2016 - 10:46
E cam greu sa ma uit pe script-ul tau. L-am modificat sa arate mai bine si sa fie mai usor de verificat.
Scriptul copiat mai jos in momentul de fata nu va face nimic, doar va afisa ce anume va face. Scoate tu "Echo" de unde ai nevoie: @echo off echo Alege configurarea placii de retea Wi-Fi :MENU echo. echo 1. Static echo 2. DHCP echo. echo. set /p strCHOICE=Alege cifra corespunzatoare actiunii: If %strCHOICE%==1 GOTO :Static If /i %strCHOICE%==Static GOTO :Static If %strCHOICE%==2 GOTO :DHCP If /i %strCHOICE%==DHCP GOTO :DHCP echo GRESIT! alege tipul de configurare! pause GOTO :MENU :Static ECHO STATIC set /p strIP=Adauga IP-ul 192.168.92. If "%strIP%"=="" ( Echo. Echo Adauga IP-ul. pause goto :Static ) echo %strIP% ECHO netsh interface ip set address name="Wireless Network Connection" static 192.168.92.%strIP% 255.255.255.0 192.168.92.1 ECHO netsh interface ip set dns name="Wireless Network Connection" static 192.168.92.1 GOTO :out :DHCP echo netsh interface ip set address "Wireless Network Connection" dhcp :out set strCHOICE= set strIP= pause Ca sfat pe viitor incearca sa faci scriptul in asa fel incat sa-l poti verifica foarte repede. Il spargi in bucati (functii, module, etc) astfel incat atunci cand ai o eroare sa fie foarte usor sa vezi unde crapa scriptul. De altfel incearca sa nu mai folosesti cod de genul IF in IF in IF pentru ca e foarte greu de urmarit. Edited by emillian, 28 April 2016 - 10:51. |
#4
Posted 28 April 2016 - 20:06
Multumesc inca odata pentru ajutor,
As vrea totusi sa stiu unde am gresit la scriptul meu, ce este in neregula? am mai facut scripturi similare care la final se termina cu multe paranteze inchise si multe conditii IF si merg perfect. Multumesc inca odata pentru ajutor, As vrea totusi sa stiu unde am gresit la scriptul meu, ce este in neregula? am mai facut scripturi similare care la final se termina cu multe paranteze inchise si multe conditii IF si merg perfect. emillian, on 28 aprilie 2016 - 10:46, said: Ca sfat pe viitor incearca sa faci scriptul in asa fel incat sa-l poti verifica foarte repede. Il spargi in bucati (functii, module, etc) astfel incat atunci cand ai o eroare sa fie foarte usor sa vezi unde crapa scriptul. De altfel incearca sa nu mai folosesti cod de genul IF in IF in IF pentru ca e foarte greu de urmarit. |
#5
Posted 29 April 2016 - 10:25
La mine pare sa functioneze scriptul. Ieri nu l-am testat. Vezi ghilimeaua de la netsh ca una din ele nu e in regula in IF-urile de la DHCP.
Nu vad sa faci nici un check pentru IP-ul introdus... poti introduce orice ... testbat.JPG 57.33K 6 downloads Referitor la intrebarea ta poti face ceva de genul acesta: :MENU echo. echo 1. Task 1 echo 2. Task 2 echo 3. Task 3 Echo. echo. set /p Alege= If %Alege%==1 GOTO :Task1 If %Alege%==2 GOTO :Task2 If %Alege%==3 GOTO :Task3 Echo. Echo Raspuns gresit. Reincearca. GOTO :MENU :Task1 ECho Task 1 :Task2 ECHo Task 2 :Task3 Echo Task 3 Scriptul va executa linie cu linie. Daca in vreunul din IF-uri conditia e True atunci va sari la task-ul respectiv (la 1,2 sau 3). Daca in nici un if conditia nu e corect atunci o sa afiseze mesajul si se intoarce la Meniu. In acelasi fel poti folosi si alte conditii (sa verifici variable sau din output-ul vreunei comenzi, etc). Edited by emillian, 29 April 2016 - 10:32. |
Anunturi
Bun venit pe Forumul Softpedia!
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users