Umgebungsvariable appdata für andere Benutzer ausfindig machen
Guten Morgen!
Ich muss mit einem Windows Batch-Skript mehrere Dateien in das Verzeichnis %userprofil%\Anwendungsdaten\ kopieren. Grundsätzlich ist das für den aktuell angemeldeten Benutzer kein Problem, da ich einfach den Befehle "copy xyz.txt %appdata%" nutzen kann.
Meine Problematik besteht nun darin, dass die Daten in jedes vorhandene Windows Benutzerprofil unter \Anwendungsdaten eingefügt werden müssen. Da sich die Daten benutzerspezifisch unterscheiden, kann ich das Verzeichnis unter "All Users" nicht verwenden.
\user1\Anwendungsdaten\abc.txt
\user2\Anwendungsdaten\def.txt
\user3\Anwendungsdaten\ghi.txt
etc.
Wie kann ich das Verzeichnis Anwendungsdaten alle vorhandenen Benutzerprofile ermitteln um die Dateien einzufügen. Da Skript wird vom Administrator ausgeführt, so dass Zugriffsrechte kein Problem darstellen. Erschwerend kommt hinzu, dass sich die klassischen \Anwendungsdaten ab Windows Vista und aktuelle unter \AppData\Roaming befinden. Die Windows Umgebungsvariable %appdata% hilft mir hierbei leider nur für den aktuellen Benutzer weiter.
Habt ihr eine Idee?
Vielen Dank!
Ich muss mit einem Windows Batch-Skript mehrere Dateien in das Verzeichnis %userprofil%\Anwendungsdaten\ kopieren. Grundsätzlich ist das für den aktuell angemeldeten Benutzer kein Problem, da ich einfach den Befehle "copy xyz.txt %appdata%" nutzen kann.
Meine Problematik besteht nun darin, dass die Daten in jedes vorhandene Windows Benutzerprofil unter \Anwendungsdaten eingefügt werden müssen. Da sich die Daten benutzerspezifisch unterscheiden, kann ich das Verzeichnis unter "All Users" nicht verwenden.
\user1\Anwendungsdaten\abc.txt
\user2\Anwendungsdaten\def.txt
\user3\Anwendungsdaten\ghi.txt
etc.
Wie kann ich das Verzeichnis Anwendungsdaten alle vorhandenen Benutzerprofile ermitteln um die Dateien einzufügen. Da Skript wird vom Administrator ausgeführt, so dass Zugriffsrechte kein Problem darstellen. Erschwerend kommt hinzu, dass sich die klassischen \Anwendungsdaten ab Windows Vista und aktuelle unter \AppData\Roaming befinden. Die Windows Umgebungsvariable %appdata% hilft mir hierbei leider nur für den aktuellen Benutzer weiter.
Habt ihr eine Idee?
Vielen Dank!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 130738
Url: https://administrator.de/contentid/130738
Ausgedruckt am: 22.11.2024 um 14:11 Uhr
7 Kommentare
Neuester Kommentar
Mit
Diese liste kannst du dann mit
Wenn du es genau haben willst kannst du noch %APPDATA% zerlegen und deinen usernamen duch die in der liste ersetzen:
dir %USERPROFILE%\..
bekommst du sie Benutzerkonten aufgelistet.Diese liste kannst du dann mit
FOR /F "delims=" %%i in ('dir /b %USERPROFILE%\..') do echo %%i
durchgehen und halt statt dem echo den entsprechenden Befehl einsetzen.Wenn du es genau haben willst kannst du noch %APPDATA% zerlegen und deinen usernamen duch die in der liste ersetzen:
FOR /F "delims=" %%i in ('dir /b %USERPROFILE%\..') do FOR /F "tokens=1,* delims=%username%" %%j in ('echo %APPDATA%') do echo %%j%%i%%k
Moin Lionheart,
Ja nee, das hat nur indirekt mit der Betriebssystemversion XP oder Vi$ta zu tun..
Unter XP enthält (in fast allen üblichen Konstellationen) die Umgebungsvariable %USERSPROFILE% einen "Pfad mit Leerzeichen".
E.g. "C:\Dokumente und Einstellungen\Biber".
Unter Vi$ta ist kein Leerzeichen im Pfad "C:\Users\Whatever".
Funktionieren wir aber in beiden Fällen eine miniversum-Variante mit einem zusätzlichen Paar Anführungszeichen:
Demo am CMD-Prompt:
Nur der Vollständigkeit halber, damit nicht aus diesem Beitrag irgendwann zitiert wird :"Unter Vista geht das dir %userprofile%\.. unter XP leider nicht."
Grüße
Biber
Ja nee, das hat nur indirekt mit der Betriebssystemversion XP oder Vi$ta zu tun..
Unter XP enthält (in fast allen üblichen Konstellationen) die Umgebungsvariable %USERSPROFILE% einen "Pfad mit Leerzeichen".
E.g. "C:\Dokumente und Einstellungen\Biber".
Unter Vi$ta ist kein Leerzeichen im Pfad "C:\Users\Whatever".
Funktionieren wir aber in beiden Fällen eine miniversum-Variante mit einem zusätzlichen Paar Anführungszeichen:
Demo am CMD-Prompt:
FOR /F "delims=" %i in ('dir /b "%USERPROFILE%\.."') do @echo %i
Nur der Vollständigkeit halber, damit nicht aus diesem Beitrag irgendwann zitiert wird :"Unter Vista geht das dir %userprofile%\.. unter XP leider nicht."
Grüße
Biber