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

La variable %USERPROFILE% no funciona

Si intento crear archivos en el símbolo del sistema utilizando los comandos

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

mi ordenador creará los archivos sin problemas.

Sin embargo, si utilizo los comandos

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

el prompt de comandos responde con

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

¿Cómo puedo solucionar esto?

Respuestas (4)

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

La variable %UserProfile% es una variable de entorno especial para todo el sistema que es completa en sí misma.  Contiene %SystemDrive%\Users\{username}

Ver esta fantástica tabla que destaca las diferencias entre las variables en windows XP (NT5) y Windows Vista/7/8 (NT6) .

Prueba

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

Su valor es la ubicación del directorio del perfil del usuario actual, en el que se encuentra el hive del registro HKEY\CURRENT_USER (HKCU) de ese usuario (NTUSER).

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

Supongo que has confundido las variables %USERPROFILE% y %USERNAME%.

Por defecto, %USERPROFILE% y C:\Users\%USERNAME% apuntan a la misma ubicación. Dado que no se garantiza que esto sea cierto, usar %USERPROFILE% es un enfoque más fiable.

En general, al depurar un comando como

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

su primer paso debería ser anteponer echo.

El comando

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

le habría mostrado lo siguiente:

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

que claramente no es lo que quieres.

También puede consultar el valor de %USERPROFILE% ejecutando

set USERPROFILE

Para ver todas las variables de entorno actualmente definidas, ejecute

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

En realidad, parece que el PO está buscando no sólo C:\NUsers\Nalguien sino la carpeta AppData\Roaming de ese usuario. Por lo tanto, la ruta más rápida allí es utilizar

%APPDATA%

En el ejemplo del OP, él usaría

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

La variable %USERPROFILE% suele incluir el C:\Users\AccountName por lo que el uso correcto sería

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