Pfad zu den Userprofilen dynamisch ermitteln
Hallo,
ich sitze nun schon länger und grüble darüber nach, wie ich den Pfad zu den Userprofilen unter Windows XP erhalten.
%userprofile% gibt mir mein aktuelles Userprofil aus.
%username% meinen Benutzernamen.
Es geht darum, dass wir sowohl englische als auch deutsche Notebooks reinbekommen, bei denen mittels Robocopy alle Userprofile gesichert werden sollen. Dieser Teil gehört zu einem umfangreichen Skript, daher würde ich den gerne so gut automatisieren wie möglich.
Robocopy soll also bei deutschen Windows XP Systemen "C:\Dokumente und Einstellungen" ausgeben, bei englischen C:\Documents and Settings" und zukünftig bei Vista, Win7 oder Win8 gerne auch C:\Users. Falls das Systemlaufwerk nicht auf C liegt, sondern D ist (warum auch immer) sollte dies natürlich ebenso berücksichtigt werden.
Ich habe diverse Sachen probiert, leider alle ohne Erfolg.
Ich habe probiert, mittels substring %userprofile:~0,XXX% den Pfad einzukürzen, wobei xxx die Länge des Benutzernamens sein soll (Länge bekomme ich mit einer Unterfunktion). Allerdings schaffe ich es nicht, die Länge für die Substring Methode dynamisch fürs XXX zu setzen. %userprofile:~0,%usernameLength%% geht ja nicht wirklich
Ich habe probiert, mittels einer Split Methode (zu finde auf SS64.org) den Usernamen abzusplitten. Auch ohne Erfolg,
Ich habe probiert mittels For-Schleife und DIR %userprofile%\.. weiterzukommen, aber auch ohne Erfolg.
Meine Hoffnung ist nun, dass mir jemand eine Lösung präsentiert, die mir den Pfad zu den Userprofilen ausgibt. Es kommt mir abwegig vor, dass ich der erste sein soll der dies mittels Batch probiert, es müsste also doch in den Weiten des Webs eine Lösung zu finden sein - habe aber keine gefunden
Ich bin über jegliche Hilfe und Denkanstöße sehr dankbar und freue mich auf eure Antworten!
ich sitze nun schon länger und grüble darüber nach, wie ich den Pfad zu den Userprofilen unter Windows XP erhalten.
%userprofile% gibt mir mein aktuelles Userprofil aus.
%username% meinen Benutzernamen.
Es geht darum, dass wir sowohl englische als auch deutsche Notebooks reinbekommen, bei denen mittels Robocopy alle Userprofile gesichert werden sollen. Dieser Teil gehört zu einem umfangreichen Skript, daher würde ich den gerne so gut automatisieren wie möglich.
Robocopy soll also bei deutschen Windows XP Systemen "C:\Dokumente und Einstellungen" ausgeben, bei englischen C:\Documents and Settings" und zukünftig bei Vista, Win7 oder Win8 gerne auch C:\Users. Falls das Systemlaufwerk nicht auf C liegt, sondern D ist (warum auch immer) sollte dies natürlich ebenso berücksichtigt werden.
Ich habe diverse Sachen probiert, leider alle ohne Erfolg.
Ich habe probiert, mittels substring %userprofile:~0,XXX% den Pfad einzukürzen, wobei xxx die Länge des Benutzernamens sein soll (Länge bekomme ich mit einer Unterfunktion). Allerdings schaffe ich es nicht, die Länge für die Substring Methode dynamisch fürs XXX zu setzen. %userprofile:~0,%usernameLength%% geht ja nicht wirklich
Ich habe probiert, mittels einer Split Methode (zu finde auf SS64.org) den Usernamen abzusplitten. Auch ohne Erfolg,
Ich habe probiert mittels For-Schleife und DIR %userprofile%\.. weiterzukommen, aber auch ohne Erfolg.
Meine Hoffnung ist nun, dass mir jemand eine Lösung präsentiert, die mir den Pfad zu den Userprofilen ausgibt. Es kommt mir abwegig vor, dass ich der erste sein soll der dies mittels Batch probiert, es müsste also doch in den Weiten des Webs eine Lösung zu finden sein - habe aber keine gefunden
Ich bin über jegliche Hilfe und Denkanstöße sehr dankbar und freue mich auf eure Antworten!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 247582
Url: https://administrator.de/contentid/247582
Ausgedruckt am: 23.11.2024 um 02:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo Viprex,
Das "Elternverzeichnis" ist
Wenn du es als korrekten Pfad in eine Variable packen willst, dann etwa so:
PUSHD und POPD um sicher zu gehen, dass ~f auch korrekt funktioniert, wenn die Batchdatei auf einem anderen Datenträger liegt...
Grüße
rubberman
Das "Elternverzeichnis" ist
%userprofile%\..
Wenn du es als korrekten Pfad in eine Variable packen willst, dann etwa so:
@echo off &setlocal
pushd "%userprofile%"
for %%i in ("%userprofile%\..") do set "parent=%%~fi"
popd
echo "%parent%"
pause
Grüße
rubberman
So einfach kann das Leben auf der Kommandozeile sein
Joa, und dabei weiß ich nicht mal mehr genau ob man das PUSHD und POPD unter XP wirklich benötigt hat (ich kann mich nur erinnern mal Probleme gehabt zu haben).Es führen aber viele Wege nach Rom. So etwas ginge auch:
pushd "%userprofile%\.."
set "parent=%cd%"
popd
rubberman