Umgebungs- bzw. Benutzervariable mit einem Befehl füllen
Hallo,
ich habe hier folgendes Problem:
Ich will mir den Vor- und Nachnamen eines jeden Benutzers in eine seperate Variable schreiben, um diese dann nutzen zu können.
z.b. will ich die Regsitry Werte UserName, UserInitials und Company unter HKEY_CURRENT_USER\ Software\Microsoft\Office\Common\UserInfo mit den folgenden Werten füllen:
UserName mit dem Vor- und Nachnamen des jeweiligen Benutzers
und
UserInitials mit jeweils dem ersten Buchstaben des Vor- und Nachnamens
Meine erste Idee hierzu war:
set fn=<%windir%\System32\dsquery.exe user -samid %username% |dsget user -fn
set ln=<%windir%\System32\dsquery.exe user -samid %username% |dsget user -ln
Funktioniert leider so nicht. Ich vermute das liegt ganz einfach daran, daß das Ergebnis der dsquery.exe Abfrage einen Output mit mehreren Zeilen zurückgibt. Der Output sieht nämlich so aus:
fn
Karl
dsget war erfolgreich
Jetzt denke ich muss ich genau diese Ausgabe irgendwie zerlegen, so daß ich nur noch den Namen übrig behalte, um diesen dann an den set Befehl übergeben zu können.
Und genau hier ist mein Problem, warum ich diesen Thread hier schreibe.
Ich hoffe mir kann hier jemand helfen die Ausgabe des Befehls %windir%\System32\dsquery.exe user -samid %username% |dsget user -fn so zu zerlegen, daß nur noch der Name selbst übrig bleibt.
ich habe hier folgendes Problem:
Ich will mir den Vor- und Nachnamen eines jeden Benutzers in eine seperate Variable schreiben, um diese dann nutzen zu können.
z.b. will ich die Regsitry Werte UserName, UserInitials und Company unter HKEY_CURRENT_USER\ Software\Microsoft\Office\Common\UserInfo mit den folgenden Werten füllen:
UserName mit dem Vor- und Nachnamen des jeweiligen Benutzers
und
UserInitials mit jeweils dem ersten Buchstaben des Vor- und Nachnamens
Meine erste Idee hierzu war:
set fn=<%windir%\System32\dsquery.exe user -samid %username% |dsget user -fn
set ln=<%windir%\System32\dsquery.exe user -samid %username% |dsget user -ln
Funktioniert leider so nicht. Ich vermute das liegt ganz einfach daran, daß das Ergebnis der dsquery.exe Abfrage einen Output mit mehreren Zeilen zurückgibt. Der Output sieht nämlich so aus:
fn
Karl
dsget war erfolgreich
Jetzt denke ich muss ich genau diese Ausgabe irgendwie zerlegen, so daß ich nur noch den Namen übrig behalte, um diesen dann an den set Befehl übergeben zu können.
Und genau hier ist mein Problem, warum ich diesen Thread hier schreibe.
Ich hoffe mir kann hier jemand helfen die Ausgabe des Befehls %windir%\System32\dsquery.exe user -samid %username% |dsget user -fn so zu zerlegen, daß nur noch der Name selbst übrig bleibt.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 201615
Url: https://administrator.de/contentid/201615
Ausgedruckt am: 22.11.2024 um 14:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo W2K-Networker!
Ich würde zwar eher ein VBScript verwenden (wie zB hier), aber mit
Grüße
bastla
Ich würde zwar eher ein VBScript verwenden (wie zB hier), aber mit
dsquery
/ dsget
könntest Du das so versuchen:for /f "tokens=1* delims=: " %%i in ('dsquery user -samid %username%^|dsget user -fn -L^|findstr /b "fn:"') do set "fn=%%j"
Grüße
bastla
Hallo W2K-Networker,
die eingebaute Hilfefunktion im for ( for /? ) ist eigentlich schon ganz gut.
Hilfreich ist auch immer ein Blick auf http://www.robvanderwoude.com
Gruß
Andi
die eingebaute Hilfefunktion im for ( for /? ) ist eigentlich schon ganz gut.
Hilfreich ist auch immer ein Blick auf http://www.robvanderwoude.com
Gruß
Andi
... aber vor allem: Tutorial zur FOR-Schleife
Sollten dann noch Fragen offen bleiben: einfach fragen .
Grüße
bastla
Sollten dann noch Fragen offen bleiben: einfach fragen .
Grüße
bastla