2013-03-27 00:54:35 +0000 2013-03-27 00:54:35 +0000
18
18

Variable %USERPROFILE% funktioniert nicht

Wenn ich versuche, Dateien in der Eingabeaufforderung mit den Befehlen

mkdir C:\Users\Tristan\AppData\Roaming\modinstaller\recovery
mkdir C:\Users\Tristan\AppData\Roaming\modinstaller\mods

zu erstellen, erstellt mein Computer die Dateien ohne Probleme.

Wenn ich jedoch die Befehle

mkdir C:\Users\%USERPROFILE%\AppData\Roaming\modinstaller\recovery
mkdir C:\Users\%USERPROFILE%\AppData\Roaming\modinstaller\mods

verwende, antwortet die Eingabeaufforderung mit

The filename, directory name, or volume label syntax is incorrect.

Wie kann ich das beheben?

Antworten (4)

28
28
28
2013-03-27 00:59:51 +0000

Die Variable %UserProfile% ist eine spezielle systemweite Umgebungsvariable, die in sich vollständig ist.  Sie enthält %SystemDrive%\Users\{username}

Siehe diese fantastische Tabelle, die die Unterschiede zwischen Variablen in Windows XP (NT5) und Windows Vista/7/8 (NT6) hervorhebt.

Versuchen Sie

mkdir %userprofile%\AppData\Roaming\modinstaller\mods

Sein Wert ist der Speicherort des Profilverzeichnisses des aktuellen Benutzers, in dem sich die Registrierungsstruktur HKEY_CURRENT_USER (HKCU) dieses Benutzers befindet (NTUSER).

14
14
14
2013-03-27 01:13:49 +0000

Ich nehme an, Sie haben die Variablen %USERPROFILE% und %USERNAME% verwechselt.

Standardmäßig zeigen %USERPROFILE% und C:\Users\%USERNAME% auf dieselbe Stelle. Da dies nicht garantiert ist, ist die Verwendung von %USERPROFILE% ein zuverlässigerer Ansatz.

Im Allgemeinen sollte beim Debuggen eines Befehls wie

mkdir C:\Users\%USERPROFILE%\AppData\Roaming\modinstaller\recovery

Ihr erster Schritt sein, echo voranzustellen.

Der Befehl

echo mkdir C:\Users\%USERPROFILE%\AppData\Roaming\modinstaller\recovery

hätte Ihnen folgendes gezeigt

mkdir C:\Users\C:\Users\Tristan\AppData\Roaming\modinstaller\recovery

, was eindeutig nicht das ist, was Sie wollen.

Sie können auch den Wert von %USERPROFILE% abfragen, indem Sie

set USERPROFILE

ausführen. Um alle aktuell definierten Umgebungsvariablen zu sehen, führen Sie

set
``` aus
8
8
8
2015-09-10 13:24:01 +0000

Es scheint tatsächlich so, dass der OP nicht nur nach C:\Users\Someone sucht, sondern nach dem Ordner AppData\Roaming dieses Benutzers. Der schnellste Pfad dorthin ist also

%APPDATA%

Im Beispiel des OPs würde er

mkdir %APPDATA%\modinstaller\recovery
mkdir %APPDATA%\modinstaller\mods
``` verwenden.
-1
-1
-1
2015-07-30 11:35:01 +0000

Die Variable %USERPROFILE% enthält normalerweise den C:\Benutzer\Kontonamen, so dass die korrekte Verwendung

mkdir %USERPROFILE%\AppData\Roaming\modinstaller\recovery wäre