jerry95
Goto Top

Problem mit Userabfrage in einem CMD-Script

Hallo erstmal,

ich bin mit Scripte erstellen noch nicht all zu fit und habe nun ein Problem mit der Variable %Username%

Wenn ich folgendes eingebe:

If "%Username%"=="Testuser" net use X <Pfad>

funktioniert das ganze ohne Probleme, ich brauche aber folgendes

If "%Username:~0,3%"=="Tes" net use x <Pfad>

geht nichts mehr!

Wo ist mein Denkfehler?

Hintergrund ist eine Schule, PCs werden von mehreren Klasen genutzt und je nach Klasse soll ein anderes Netzlaufwerk gemapt werden, der Lehrer soll immer auf alle Zugriff haben.

Dort gibt es keine Domain, sondern einen Novellserver, keine Ahnung wie das dort funktioniert

Die Usernamen habe ich mir dann als Beispiel so gedacht 12a01 für die Klase 12a und den PC 01 usw.
Durch den Zusatz :~0,3 werden ja nur die ersten 3 Felder ausgelesen, also müßte das da oben doch eigentlich funktionieren.
Denn wenn ich echo %username:~0,3% eingebe bekomme ich dann auch die ersten drei Buchstaben des Usernamens angezeigt!

Wenn ihr andere Vorschläge habt das zu handhaben, dann immer her damit.

Gruß aus dem Fichtelgebirge
Gerald

Content-ID: 93758

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

Ausgedruckt am: 26.09.2024 um 23:09 Uhr

Biber
Biber 06.08.2008 um 12:42:34 Uhr
Goto Top
Moin Jerry95,

einen Denkfehler sehe ich auch nicht bei Dir, eigentlich sollte es fliegen.

Eventuell passiert nichts wegen des fehlenden Doppelpunkts hinter dem Netzlaufwerkbuchstaben. Oder das fehlende Ignorieren von Klein/Grossschreibung führt zum Scheitern des Vergleichs.

If /i "%username:~0,3%"=="12a" net use x: [whatever]
--> sollte zum gewünschten Ergebnis führen.
Sonst poste bitte mal den Komplettschnipsel - dann liegt ein anderer Tippfehler vor.

Grüße
Biber
Jerry95
Jerry95 06.08.2008 um 13:57:49 Uhr
Goto Top
Zum testen habe ich es jetzt im Moment etwas geändert und ohne Net Use sondern mit einfach einen echo Befehl

Da ich ja sonst laufend wieder trennen muss.


C:\>echo %Username:~0,3%
Ger

C:\>if /i "%Username:~0,3"=="Ger" echo %Username%

C:\>

wie man sieht, keinerlei reaktion auf den Befehl!
Auch keine Reaktion wenn ich ELSE echo "fehlgeschlagen" mit einbaue?
60730
60730 06.08.2008 um 14:05:15 Uhr
Goto Top
Servus,
So...
set abc %Username:~0,3%
if /i %abc%==Ger echo [%Username%] %abc%
funktioniert dein Schnippsel. Frag mich nicht warum ;-( face-wink
..denn
if /i "%Username:~0,3"==ger echo %Username%
funktioniert auch nicht....

Gruß
Jerry95
Jerry95 06.08.2008 um 14:51:14 Uhr
Goto Top
Vielen Vielen Dank, funktioniert