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

La variabile %USERPROFILE% non funziona

Se provo a creare file nel prompt dei comandi usando i comandi

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

il mio computer crea i file senza problemi.

Tuttavia, se uso i comandi

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

il prompt dei comandi risponde con

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

Come posso risolvere questo problema?

Risposte (4)

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

La variabile %UserProfile% è una speciale variabile d'ambiente a livello di sistema che è completa di per sé.  Contiene %SystemDrive%\Users\{username}

Vedi questa fantastica tabella che evidenzia le differenze tra le variabili in windows XP (NT5) e Windows Vista/7/8 (NT6) .

Prova

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

Il suo valore è la posizione della directory del profilo dell'utente corrente, in cui si trova l'alveare di registro HKEY_CURRENT_USER (HKCU) dell'utente (NTUSER).

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

Suppongo che tu abbia confuso le variabili %USERPROFILE% e %USERNAME%.

Per default, %USERPROFILE% e C:\Users\%USERNAME% puntano alla stessa posizione. Poiché non è garantito che ciò sia vero, usare %USERPROFILE% è un approccio più affidabile.

In generale, quando si fa il debug di un comando come

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

il primo passo dovrebbe essere quello di anteporre echo.

Il comando

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

vi avrebbe mostrato quanto segue:

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

che chiaramente non è quello che vuoi.

Potete anche interrogare il valore di %USERPROFILE% eseguendo

set USERPROFILE

Per vedere tutte le variabili d'ambiente attualmente definite, eseguite

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

In realtà sembra che l'OP non stia cercando solo C:\Users\Someone ma la cartella AppData\Roaming di quell'utente. Quindi, il percorso più veloce è usare

%APPDATA%

Nell'esempio di OP, dovrebbe usare

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

La variabile %USERPROFILE% di solito include C:\Users\AccountName quindi l'uso corretto sarebbe

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