Fosco 10 Geschrieben 10. August 2009 Melden Teilen Geschrieben 10. August 2009 Hi Leute, ich versuche eine Batch zu schreiben, mit der sich die Notebookuser per Auswahl für Sie gültige Netzwerkeinstellungen "einrichten" können (Lan und/oder WLan). Leider muß ich hier in jeder Niederlassung mit statischen IP-Adressen arbeiten, und bin daher darauf angewiesen, das die IP Adressen je nach Standort fest angelegt werden. Das habe ich mittels "netsh interface ip set adresse" auch am laufen. nun muß ich das "nur noch Benutzerfreundlich" anlegen.:suspect: Mein gedanke war, das der User erstmal angeben muß, ob er "per Kabel" oder "Per WLan" ins Netz kommt. Dementsprechend wird die Netzwerkverbindung ausgewählt. Dafür setze ich eine variable (lanv), die den Verbindungsnamen beinhalten soll. Als zweiter Schritt soll er den Standort auswählen. Demnach wird die IP dann eingerichtet. Leider will aber die Auswahl des Adapters nicht wirklich. Hier mal der Scriptpart: @echo off cls :START Echo. echo. Echo [1] Patchkabel Echo. Echo [2] WLAN Echo. Echo [q] QUIT Echo. set /p lan=Bitte waehlen Sie Ihre Netzwerkverbindung aus!: if %lan% == 1 set lanv=LAN-Verbindung if %lan% == 2 set lanv=Drahtlose Netzwerkverbindung 2 if %lan% == q goto QUIT if not %lan% == 1 goto RESTART if not %lan% == 2 goto RESTART if not %lan% == q goto RESTART goto STARTLAN :STARTLAN cls Echo. echo. Echo [1] WJW HASENGARTENSTRASSE Echo. Echo [2] DOMAENE MECHTHILDSHAUSEN REM Echo REM Echo [3] Klarenthal REM Echo REM Echo [4] Gassenbach Echo. ECHO [0] DHCP (Automatische IP Zuweisung) ECHO. Echo [Q] Quit Echo. set /p choice=Bitte waehlen Sie Ihren Standort aus!: if %choice% == 1 goto WJW HASENGARTENSTRASSE if %choice% == 2 goto DOMAENE MECHTHILDSHAUSEN REM if %choice% == 3 goto Klarenthal REM if %choice% == 4 goto Gassenbach if %choice% == 0 goto DHCP if %choice% == q goto QUIT if not %choice% == 1 goto RESTARTLAN if not %choice% == 2 goto RESTARTLAN echo off REM if not %choice% == 3 goto RESTARTLAN REM if not %choice% == 4 goto RESTARTLAN echo if not %choice% == q goto RESTARTLAN :WJW HASENGARTENSTRASSE echo. echo. echo Bitte haben Sie etwas Geduld netsh interface ip set address name="%lanv%" static 192.168.100.237 255.255.255.0 192.168.100.30 0 goto QUIT ... :RESTART echo. echo. set /p _ok=Falsche Eingabe! Bitte druecken Sie die Eingabetaste um Ihre Auswahl zu treffen! cls goto START Sobald ich die Verbindung ausgewählt habe, laufe ich in die Meldung "Falsche Eingabe! Bitte druecken Sie die Eingabetaste um Ihre Auswahl zu treffen!" Irgentwie find ich grad keine Lösung, um nach der Zuweisung der Variablen "lanv" eine Sprungadresse zu zuweisen ( a la: if %choice% == 1 goto WJW HASENGARTENSTRASSE) Irgentwelche Tipps für Lösungen, die ich grad nicht seh?? Thx und Gruß Fosco P.S. Bitte keine Häme über das Netzwerk hier... wenn ich könnte wie ich wollte säh schon alles anders aus...:( Zitieren Link zu diesem Kommentar
phoenixcp 10 Geschrieben 10. August 2009 Melden Teilen Geschrieben 10. August 2009 Versuch mal die Leerzeichen aus deinen Sprungmarken zu nehmen. Ich glaub nicht das das so geht... Zitieren Link zu diesem Kommentar
Fosco 10 Geschrieben 10. August 2009 Autor Melden Teilen Geschrieben 10. August 2009 Die Leerzeichen haben bisher keine probs gemacht.... wenn ich das Script fest für einen Netzwerkadapter nehme (also ohne Variable als Adaptername, sonder gleich den namen in der zuweisung der ip) funktioniert es einwandfrei. Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 10. August 2009 Melden Teilen Geschrieben 10. August 2009 Ich vermute, es liegt daran: if not %lan% == 1 goto RESTART if not %lan% == 2 goto RESTART if not %lan% == q goto RESTART Da %lan% ja nicht alles gleichzeitig sein kann, treffen immer min. zwei der Bedingungen zu und du springst grundsätzlich nach "RESTART" Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 10. August 2009 Melden Teilen Geschrieben 10. August 2009 Probiers mal so: set /p lan=Bitte waehlen Sie Ihre Netzwerkverbindung aus!: if %lan% == 1 set lanv=LAN-Verbindung && goto STARTLAN if %lan% == 2 set lanv=Drahtlose Netzwerkverbindung 2 && goto STARTLAN if %lan% == q goto QUIT GOTO RESTART :STARTLAN echo %lanv% Zitieren Link zu diesem Kommentar
Fosco 10 Geschrieben 10. August 2009 Autor Melden Teilen Geschrieben 10. August 2009 Hmm... Das könnte sein. Aber wenn ich das rauslasse, wird eine Falscheingabe ja nicht abgefangen. Gibt es eine Möglichkeit dies abzufangen, ohne das Script (bzw. den Sinn) gleich auszuhebeln? Ups.. hab deinen Nachtrag grad erst gesehen.. und probier es gleich aus.. Kann ich mittlels "&&" zwei Befehle verknüpfen? Sry, für dumme Fragen, aber ich schreibe nur extrem selten mal ein script, und wurschtel mich da bisher nur ein bischen durch.. Aber schon mal THX für die Hilfen !! Zitieren Link zu diesem Kommentar
Fosco 10 Geschrieben 10. August 2009 Autor Melden Teilen Geschrieben 10. August 2009 Probiers mal so: set /p lan=Bitte waehlen Sie Ihre Netzwerkverbindung aus!: if %lan% == 1 set lanv=LAN-Verbindung && goto STARTLAN if %lan% == 2 set lanv=Drahtlose Netzwerkverbindung 2 && goto STARTLAN if %lan% == q goto QUIT GOTO RESTART :STARTLAN echo %lanv% Herzlichen Dank...:thumb1::jau: Damit läuft das Script einwandfrei. Lediglich die leerzeichen vor den && mußte ich noch rausnehmen, da sonst ne kleine fehlermeldung kommt. Umgesetzt werde die Daten trotzdem..:D THX Fosco Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 10. August 2009 Melden Teilen Geschrieben 10. August 2009 Bitteschön :) phoenixcp hat übrigens schon Recht! Die Leerzeichen in den Sprungzielen taugens nicht! Dir fällt das bisher nur nicht auf, weil der vordere Teil der Sprungmarken unterschiedlich ist. Wenn Du jedoch irgendwann weitere "DOMAENE" oder "WJW" angibst, merkst Du, dass er immer zum ersten Sprungziel springt, unabhängig davon, was dahinter steht. Statt && wäre übrigens auch folgendes möglich: if %lan% == 1 ( set lanv=LAN-Verbindung goto STARTLAN ) So können mehrere Befehle abhängig vom Vergleich abgearbeitet werden. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.