Zmienna% USERPROFILE% nie działa

17

Jeśli spróbuję utworzyć pliki w wierszu polecenia, używając poleceń

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

mój komputer utworzy pliki bez problemów.

Jeśli jednak użyję poleceń

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

wiersz polecenia odpowiada:

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

Jak to naprawić?

użytkownik210720
źródło

Odpowiedzi:

27

%UserProfile%Zmienna jest w całym systemie specjalny zmienna, że jest kompletne w sobie. Zawiera%SystemDrive%\Users\{username}

Zobacz tę fantastyczną tabelę, która podkreśla różnice między zmiennymi w Windows XP (NT5) i Windows Vista / 7/8 (NT6) .

Próbować

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

Jego wartością jest lokalizacja katalogu profilu bieżącego użytkownika, w którym znajduje się gałąź rejestru HKEY_CURRENT_USER (HKCU) (NTUSER).

G Koe
źródło
13

Zakładam, że pomieszałeś zmienne %USERPROFILE%i %USERNAME%.

Domyślnie, %USERPROFILE%a C:\Users\%USERNAME%punkt w tej samej lokalizacji. Ponieważ nie jest to gwarantowane, używanie %USERPROFILE%jest bardziej niezawodnym podejściem.

Zasadniczo podczas debugowania polecenia takiego jak

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

Twoim pierwszym krokiem powinno być przygotowanie echo.

Komenda

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

pokazałby ci:

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

co wyraźnie nie jest tym, czego chcesz.

Możesz również sprawdzić wartość %USERPROFILE%, wykonując

set USERPROFILE

Aby zobaczyć wszystkie aktualnie zdefiniowane zmienne środowiskowe, wykonaj

set
Dennis
źródło
8

Wygląda na to, że OP szuka nie tylko folderu C: \ Users \ Someone, ale również tego folderu AppData \ Roaming tego użytkownika. Tak więc najszybszą dostępną ścieżką

%APPDATA%

W przykładzie PO użyłby tego

mkdir %APPDATA%\modinstaller\recovery
mkdir %APPDATA%\modinstaller\mods
Speedbird186
źródło
-1

Zmienna% USERPROFILE% zwykle zawiera C: \ Users \ AccountName, więc prawidłowe użycie byłoby

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

użytkownik475349
źródło
Zostało to już wyjaśnione w obu istniejących odpowiedziach. Jeśli ci się podobają, postaraj się zyskać reputację i głosuj za nimi, gdy masz 15 powtórzeń .
gronostaj
Witamy w Super User! To powiela inną odpowiedź i nie dodaje żadnej nowej treści. Nie publikuj odpowiedzi, chyba że masz coś nowego do dodania.
DavidPostill