%USERPROFILE% variable 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

Mein Computer erstellt die Dateien ohne Probleme.

Wenn ich jedoch die Befehle verwende

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

Die Eingabeaufforderung antwortet mit

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

Wie behebe ich das?

Author: Dennis, 2013-03-27

5 answers

Die Variable %UserProfile% ist eine spezielle systemweite Umgebungsvariable, die an und für sich vollständig ist.  Es enthält %SystemDrive%\Users\{username}

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

Versuchen

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

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

 31
Author: G Koe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-12-13 09:11:38

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

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

Im Allgemeinen beim Debuggen eines Befehls wie

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

Ihr erster Schritt sollte sein, echo voranzustellen.

Der Befehl

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

Hätte dir Folgendes gezeigt:

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

Was eindeutig nicht das ist, was du willst.

Sie können auch abfrage des Werts von %USERPROFILE% durch Ausführen von

set USERPROFILE

Um alle aktuell definierten Umgebungsvariablen anzuzeigen, führen Sie

set
 15
Author: Dennis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-03-27 01:24:44

Es scheint tatsächlich, dass das OP nicht nur sucht C:\Users\Someone aber der AppData\Roaming-Ordner dieses Benutzers. Der schnellste Weg dorthin ist also

%APPDATA%

Im Beispiel des Ops würde er

mkdir %APPDATA%\modinstaller\recovery
mkdir %APPDATA%\modinstaller\mods
 9
Author: Speedbird186,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-09-10 13:24:01

In PowerShell nicht verwenden

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

Benutze dies:

mkdir $home\AppData\Roaming\modinstaller\recovery
 1
Author: Vilquer Fagundes de Oliveira,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-06-07 17:09:04

Die Variable %USERPROFILE% enthält normalerweise die C:\Users\AccountName die richtige Verwendung wäre also

Mkdir %USERPROFILE%\AppData\Roaming\modinstaller\recovery

 -2
Author: user475349,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-07-30 11:35:01