Tengo un directorio en mi carpeta de inicio en el que coloco el software de línea de comandos (CMD_Software). Puse cada pieza de software en su propio directorio dentro de CMD_Software para evitar el desorden.
Me gustaría hacer una sola entrada en mi variable PATH que permita el acceso a CMD_Software y a todos los directorios que contiene desde la línea de comandos.
Lo intenté C:\Users\myuser\CMD_Software\*
pero eso no hizo nada. Ese es el punto en el que me quedé sin ideas.
Tenga en cuenta que no estoy tratando de establecer una nueva ruta mientras estoy en la terminal, estoy tratando de establecer una nueva ruta en las "Variables de entorno" disponibles en la pestaña "Avanzado" de Propiedades del sistema.
windows
windows-8
command-line
environment-variables
Landon Brainard
fuente
fuente
Respuestas:
La variable PATH no admite comodines ni recursividad. Esto es por diseño.
Hay dos posibles soluciones que he usado ocasionalmente:
Cree un directorio con archivos por lotes simples y agregue ese directorio a la RUTA. Cada archivo por lotes puede iniciar el programa que desee, por ejemplo:
La primera línea es un comentario, la segunda comienza
@
para evitar mostrar el comando que se está ejecutando y%*
se usa para pasar cualquier argumento de la línea de comando al EXE.Agregue alias a CMD.EXE:
Esto se traduce esencialmente
CMD_Software
en el símbolo del sistema a todo después del signo igual. El$*
se reemplaza con los argumentos suministrados.Prefiero el segundo enfoque, porque puede agrupar todos los alias en un solo archivo (vea el modificador "/ MACROFILE" en DOSKEY /?) Y ejecutarlo automáticamente cada vez que el intérprete de comandos comience a usar una configuración de registro (vea la tecla "AutoRun" en CMD /?).
Un inconveniente del segundo método es que los alias funcionan solo al comienzo de una línea de comando. Esto puede ser un problema si desea encadenar comandos. Por ejemplo,
CLS & CMD_Software
no funcionará a menos que coloque el alias en una línea separada usando paréntesis:Cada vez que esto se convierte en un problema, simplemente recurro al enfoque de archivo por lotes.
fuente
Esto es lo que uso para solucionar el problema. Copie este script a continuación y guárdelo como
FIXPATH.BAT
en la carpeta que ha agregado a laPATH
variable de entorno. Por ejemplo:Ahora, cada vez que necesite ejecutar un programa que esté en una subcarpeta, diga ...
Ejecutar
fixpath
primero y luego introducir el comando (por ejemplo,grep
oexiftool
) de esta manera:FIXPATH.BAT
Gracias a la respuesta de @ VonC
fuente
Coloque un subdirectorio "programlinks \" debajo de ... \ CMD_Software (o en cualquier lugar, en realidad) y complételo con enlaces simbólicos o hardlinks a cada ejecutable al que desee acceder. Entonces una sola entrada en la RUTA para ... \ programlinks será suficiente.
fuente
Si la idea no le desanima demasiado, puede copiar sus herramientas de línea de comandos en el directorio Windows \ System32. Luego puede ejecutarlos desde cualquier directorio, como ping o ipconfig.
editar
Después de jugar un poco, esto ES posible. Solo necesita usar punto y coma para delimitar sus directorios. Digamos que tenía un programa en "carpeta1" y "carpeta2". Escribirías tu camino así:
Luego puede llamar a un programa en cualquier directorio directamente desde la línea de comandos. AFAIK no hay otra manera de hacer esto con una sola línea.
Información de soporte: http://en.wikipedia.org/wiki/PATH_(variable)
fuente
program.bat
como%PATH%\program.bat
es más o menos lo contrario de para qué está diseñado PATH.