Buscando una solución para imprimir parches dentro de la pathvariable en Windows Command-Line, llegué a esta solución. la respuesta es este comando:
echo %path:;=&echo.%
ahora me pregunto cómo funciona esto.
windows
command-line
yekanchi
fuente
fuente

echo.puede no funcionar .Respuestas:
Esa es una solución interesante que nunca he visto antes. Déjame intentar explicar:
echo %path%. Esto imprimirá todos los directorios en una sola línea separada con punto y coma (;)%path:a=b%cual reemplazará todos losacaracteres conbecho.se usa para imprimir una nueva línea&se usa para separar comandos, por ejemploecho line1&echo line2, imprimirá dos líneas;con nada, y luego imprimir una nueva línea'. No puedo encontrar ninguna documentación sobre esto, así que es solo mi interpretación. Francamente, ni siquiera sabía que eso era posible, pero ahí lo tienes. ACTUALIZACIÓN Mi interpretación de este paso parece estar apagada, y wizzwizz4 lo explica mejor .fuente
echo path? ¿Se utiliza %% para las variables?set greeting=Helloy luegoecho %greeting%. Confusamente,PATHresulta ser tanto un comando como una variable, por lo que escribir el comandopathoecho %path%tendrá el mismo resultado.$PATHpor ejemplo.echo.no es "el comando para imprimir una nueva línea". Este es el intérprete de comandos de Microsoft para Windows NTcmd; yecho.simplemente es el comando para imprimir un elemento de ruta asegurando que si el elemento de ruta está vacío, no cambie a la otra funcionalidad deecho. El primeroechorealmente debería ser unecho.también.Esto está utilizando la sustitución de variables de línea de comandos.
%path:;=&echo.%significa "%path%, pero reemplaza todas las;s con&echo.". Esto significa que, conset path=C:\Windows\System32;C:\Windows\;;C:\Python37;:se convierte en:
Como
&es un separador de comandos, esto es equivalente a:Debido a las peculiaridades de DOS Batch,
echo.es idéntico,echoexcepto cuando no hay nada después. Si ese es el caso, simplemente no imprime nada, en lugar de decirle siECHOestá activado o desactivado. Esto hará que la salida:Realmente, debería ser
echo.%path:;=&echo.%para tener en cuenta el caso donde%PATH%comienza con a;, pero este comando es bastante inteligente de todos modos.Entrar en detalles detalias, realmente
echo(debería usarse en lugar deecho.. Esto se debe a queecho.puede tener problemas cuando se llama un archivoechoy es lento porque tiene que verificar el disco (%CD%y creo que también todo%PATH%) cada vez que se ejecuta. (No tengo una copia de Windows, así que no puedo verificarlo yo mismo; ¿es solo%CD%en cualquier lugar%PATH%que la presencia delechoarchivo afecteecho.y qué hace?)fuente
echo), pero realmente no lo recuerdo. ;-(echo.es el que solía circular la gente hace años. Es el único en muchos libros. La eficiencia no es el problema. El comportamiento extraño cuando existen varios archivos es. Cuando escribí un reemplazo de 32 bits para 16 bitscmden OS / 2, romper los nombres de los comandos en estos caracteres de puntuación y este comportamiento de análisis altamente irregular es una de las cosas que deliberadamente no dupliqué, y que puse en el documento documentado lista de diferencias En suechodotlugar, hice un comando externo , cuál podría alias segúnecho.lo deseado.echo(es la única versión segura.