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

%USERPROFILE% variável não funciona

Se eu tentar criar ficheiros no prompt de comando usando os comandos

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

o meu computador irá criar os ficheiros sem problemas.

Contudo, se eu utilizar os comandos

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

o prompt de comando responde com

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

Como é que eu corrijo isto?

Respostas (4)

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

A variável %UserProfile% é uma variável de ambiente especial para todo o sistema que é completa em si mesma.  contém %SystemDrive%\Users\{username}

Veja esta fantástica tabela que destaca as diferenças entre as variáveis no windows XP (NT5) e Windows Vista/7/8 (NT6) .

Tenta

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

O seu valor é a localização do directório de perfis do utilizador actual, no qual se encontra a colmeia de registo do utilizador HKEY_CURRENT_USER (HKCU) (NTUSER).

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

Presumo que tenha misturado as variáveis %USERPROFILE% e %USERNAME%.

Por defeito, %USERPROFILE% e C:\Users\%USERNAME% apontam para o mesmo local. Uma vez que não é garantido que isto seja verdade, utilizar %USERPROFILE% é uma abordagem mais fiável.

Em geral, ao depurar um comando como

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

o seu primeiro passo deve ser o de pré-pender echo.

O comando

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

ter-lhe-ia mostrado o seguinte:

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

que claramente não é o que deseja.

Também pode consultar o valor de %USERPROFILE% executando

set USERPROFILE

Para ver todas as variáveis de ambiente actualmente definidas, execute

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

Na realidade, parece que o OP não procura apenas C:\Users\Someone, mas a pasta AppData\Roaming desse utilizador. Assim, o caminho mais rápido é usar

%APPDATA%

No exemplo do OP, ele usaria

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

A variável %USERPROFILE% inclui normalmente a C:\Users\AccountName pelo que a utilização correcta seria

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