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-Key: 93758

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

Printed on: April 24, 2024 at 18:04 o'clock

Member: Biber
Biber Aug 06, 2008 at 10:42:34 (UTC)
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
Member: Jerry95
Jerry95 Aug 06, 2008 at 11:57:49 (UTC)
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?
Mitglied: 60730
60730 Aug 06, 2008 at 12:05:15 (UTC)
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ß
Member: Jerry95
Jerry95 Aug 06, 2008 at 12:51:14 (UTC)
Goto Top
Vielen Vielen Dank, funktioniert