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

%USERPROFILE % переменная не работает

Если я попытаюсь создать файлы в командной строке, используя команды

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

мой компьютер создаст файлы без проблем.

Однако если я использую команды

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

, командная строка ответит

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

Как это исправить?

Ответы (4)

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

Переменная %UserProfile% является специальной общесистемной переменной окружения, которая сама по себе является полной.  она содержит %SystemDrive%\Users\{username}

Смотрите эту фантастическую таблицу, которая выделяет различия между переменными в окнах XP (NT5) и Windows Vista/7/8 (NT6) .

Попробуйте

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

Его значение - расположение каталога профиля текущего пользователя, в котором находится HKEY_CURRENT_USER (HKCU), ветвь реестра (NTUSER).

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

Полагаю, вы перепутали переменные %USERPROFILE% и %USERNAME%.

По умолчанию, %USERPROFILE% и C:\Users\%USERNAME% указывают на одно и то же место. Поскольку это не гарантируется, использование %USERPROFILE% является более надежным подходом.

В общем, при отладке таких команд, как

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

вашим первым шагом будет подготовка echo.

Команда

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

показала бы вам следующее:

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

, что явно не то, чего вы хотите.

Вы также можете запросить значение %USERPROFILE%, выполнив команду

set USERPROFILE

Чтобы увидеть все определенные в данный момент переменные окружения, выполните команду

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

Похоже, что ОП ищет не только C:\Users\Someone, но и папку этого пользователя AppData\Roaming. Итак, самый быстрый путь - использовать

%APPDATA%

В примере с операционной системой он бы использовал

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

Переменная %USERPROFILE% обычно включает C:\Users\AccountName, поэтому правильное использование будет

mkdir %USERPROFILE%\AppData\Roaming\modinstaller\recovery.

Похожие вопросы

3
19
10
28
5