windows - spec - whatwg español
Sintaxis no válida con setx (4)
setx
comando setx
para establecer OGRE_HOME
:
setx OGRE_HOME D:/Program Files/OgreSDK
Ahora necesito cambiar al valor de OGRE_HOME
. ¿Cómo puedo buscar todos los valores que he establecido? Si vuelvo a ejecutar el comando, muestra que:
ERROR: Invalid syntax. Default option is not allowed more than ''2'' time(s).
Como un addendum a la respuesta de @ ajp15243 . Si está haciendo lo mismo con PowerShell en lugar del símbolo del sistema o el archivo por lotes, deberá llamar a SETX
con un carácter de comillas dobles escapadas, como en:
$my_path = "%PROGRAMFILES%/MySQL/MySQL Server 5.7/bin/"
$hkcu_path = (Get-ItemProperty hkcu:/Environment).PATH + ";" + $my_path
SETX PATH "`"$hkcu_path" # note the leading escaped quote
Sin embargo, al hacerlo, puede resultar en agregar una comilla doble final en el valor de hkcu:/Environment/PATH
, por lo que es posible que deba hacer esto también:
$dirty_path = (get-itemproperty hkcu:/Environment).PATH
$clean_path = $dirty_path -replace ''"'',''''
SETX PATH $clean_path
El símbolo del sistema le está dando ese error porque olvidó las comillas. Deberías haber escrito:
setx OGRE_HOME “D:/Program Files/OgreSDK”
Para ver todos los valores que ya ha establecido, ingrese:
reg query "HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session Manager/Environment"
O
reg query HKEY_CURRENT_USER/Environment
Los comandos de la línea de comandos de setx y prácticamente todos los comandos de Windows son sensibles a ciertos caracteres especiales. Entre ellos, el carácter de espacio, pero también está la cita que se utiliza para delimitar una entrada.
Como @ ajp15243 ya dijo, puede ocuparse del espacio bloqueando la ruta {s) entre dos citas. Pero, ¿qué pasa si tienes caminos y esos caminos ya tienen citas porque llevan un espacio? Aquí hay un ejemplo:
MY_PATHS="c:/Program Files/path1";"c:/Program Files(x86)/Path2"
En este caso, tendría que poner caracteres de escape para esas comillas internas cuando use setx o se confundirá y dará el error que enumeró. P.ej:
setx -m MY_PATHS "/"c:/Program Files/path1/";/"c:/Program Files(x86)/Path2/""
Su ruta hacia el SDK de Ogre tiene un carácter de espacio, que se interpreta como un delimitador de otro argumento. Rodee su ruta con "
para mantenerlo como un único argumento para setx
:
setx OGRE_HOME "D:/Program Files/OgreSDK"
Para ver el valor actual de la variable de entorno OGRE_HOME
:
echo %OGRE_HOME%
Es posible que tenga que abrir un nuevo shell de línea de comandos para ver el valor si lo configura y luego intenta ver su valor de inmediato.
Para ver todas las variables de entorno establecidas actualmente, simplemente ejecute:
set
Para mostrar solo las variables de entorno que tienen un prefijo determinado (para que FOO
muestre FOOBAR
y FOOBAZ
), coloque ese prefijo después de set
:
set PREFIX
Alternativamente, puede usar la GUI para editar variables de entorno (asumiendo Windows 7 aquí).
- Haga clic derecho en el
Computer
, seleccioneProperties
- Haga clic en
Advanced system settings
en el panel izquierdo - Asegúrese de estar en la pestaña
Advanced
en el cuadro de diálogo emergente - Haga clic en
Environment Variables...
en la parte inferior
Aparecerá un cuadro de diálogo con las variables de entorno específicas del usuario, así como las variables de entorno de todo el sistema. Seleccione un valor y use los botones Nuevo / Editar / Eliminar para interactuar con ellos.