Anmeldeserver per batch ermitteln
%LOGONSERVER% => Der Befehl "Anmeldeserver" ist entweder falsch geschrieben oder konnte nicht gefunden werden.
Hallo zusammen,
ich möchte per batch den Logonserver ermitteln, sollte eigentlich nicht schwer sein. Meine Rechner sind XP und W2K Clients.
Bei meinem Script bekomme ich aber immer eine Fehlermeldung:
"Der Befehl "Anmeldeserver" ist entweder falsch geschrieben oder konnte nicht gefunden werden"
Hier mein code:
if %LOGONSERVER% == "\\ServerA" goto ServerA
if %LOGONSERVER% == "\\ServerB" goto ServerB
:ServerA
Anmeldeserver ist ServerA
goto ENDE
:ServerB
Anmeldeserver ist ServerB
goto ENDE
:ENDE
Besten Dank schon einmal im voraus
Hallo zusammen,
ich möchte per batch den Logonserver ermitteln, sollte eigentlich nicht schwer sein. Meine Rechner sind XP und W2K Clients.
Bei meinem Script bekomme ich aber immer eine Fehlermeldung:
"Der Befehl "Anmeldeserver" ist entweder falsch geschrieben oder konnte nicht gefunden werden"
Hier mein code:
if %LOGONSERVER% == "\\ServerA" goto ServerA
if %LOGONSERVER% == "\\ServerB" goto ServerB
:ServerA
Anmeldeserver ist ServerA
goto ENDE
:ServerB
Anmeldeserver ist ServerB
goto ENDE
:ENDE
Besten Dank schon einmal im voraus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 115764
Url: https://administrator.de/contentid/115764
Ausgedruckt am: 22.11.2024 um 12:11 Uhr
4 Kommentare
Neuester Kommentar
Moin speedy4you,
bitte Code in Code-Tags posten und nicht im Voraus danken.
Versuch es so.
Wesentliche Unterschiede.
Grüße
Biber
bitte Code in Code-Tags posten und nicht im Voraus danken.
Versuch es so.
@echo off & setlocal
FOR %%i in (serverA serverB) do (
IF /i "%LOGONServer%" =="%%i" Set "FoundServer=%%i"
)
IF "%FoundServer%"=="" (
echo Fehler... NixGefunden
) ELSE (
Echo Anmeldeserver ist %FoundServer%
)
Pause
Wesentliche Unterschiede.
- SETLOCAL gesetzt, damit Du auch mit deinen Privat-Variablen arbeiten kannst
- Beim IF-Vergleich Suchworte links und rechts der "=="-zeichen in Anführungszeichen gesetzt. Zusätzlich IF-Schalter /i .
- beide Fälle behandeln: "Server gefunden" und "Server nicht gefunden".
Grüße
Biber
Moin speedy4you,
nochmal -vielleicht hab ich es nicht richtig rübergebracht:
Die FOR-Konstruktion mit ALLEN erlaubten/geprüften Servernamen habe ich nur eingebaut, damit sich wenigstens der grundsätzliche Fall "gefunden/nichts gefunden" halbwegs pflegbar abbilden lässt.
Für die Fälle, in denen es ein NICHT-"nicht gefunden"-Fall, also einer der 2, 5 oder 12 namentlich bekannten Server ist...
-->dann kannst Du ja durchaus wie Du es geplant hattest zu einer Sprungmarke :ServerX, :ServerY, :ServerZ gehen.
Wenn Du nochmal meine drei "wesentlichen" Änderungen oben anschaust - da steht nichts davon, dass ich diese FOR-Anweisung für wesentlich oder entscheidend halte.
Das war nur, weil es in KEINEM Batch-Ablauf mehrere baugleiche Copy&Paste-Zeilen nach diesem Muster geben müssen sollte:
Grüße
Biber
nochmal -vielleicht hab ich es nicht richtig rübergebracht:
Die FOR-Konstruktion mit ALLEN erlaubten/geprüften Servernamen habe ich nur eingebaut, damit sich wenigstens der grundsätzliche Fall "gefunden/nichts gefunden" halbwegs pflegbar abbilden lässt.
Für die Fälle, in denen es ein NICHT-"nicht gefunden"-Fall, also einer der 2, 5 oder 12 namentlich bekannten Server ist...
-->dann kannst Du ja durchaus wie Du es geplant hattest zu einer Sprungmarke :ServerX, :ServerY, :ServerZ gehen.
Wenn Du nochmal meine drei "wesentlichen" Änderungen oben anschaust - da steht nichts davon, dass ich diese FOR-Anweisung für wesentlich oder entscheidend halte.
Das war nur, weil es in KEINEM Batch-Ablauf mehrere baugleiche Copy&Paste-Zeilen nach diesem Muster geben müssen sollte:
if %LOGONSERVER% == "\\ServerA" goto ServerA
if %LOGONSERVER% == "\\ServerB" goto ServerB
if %LOGONSERVER% == "\\ServerZ" goto ServerZ
if %LOGONSERVER% == "\\ServerB" goto ServerB
if %LOGONSERVER% == "\\ServerZ" goto ServerZ
Grüße
Biber