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 los a
caracteres conb
echo.
se usa para imprimir una nueva línea&
se usa para separar comandos, por ejemplo echo 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 .echo path
? ¿Se utiliza %% para las variables?
set greeting=Hello
y luego echo %greeting%
. Confusamente, PATH
resulta ser tanto un comando como una variable, por lo que escribir el comando path
o echo %path%
tendrá el mismo resultado.
$PATH
por ejemplo.
echo.
no es "el comando para imprimir una nueva línea". Este es el intérprete de comandos de Microsoft para Windows NT cmd
; y echo.
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 primero echo
realmente debería ser un echo.
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, con set path=C:\Windows\System32;C:\Windows\;;C:\Python37;
:
echo %path:;=&echo.%
se convierte en:
echo C:\Windows\System32&echo.C:\Windows\&echo.&echo.C:\Python37&echo.
Como &
es un separador de comandos, esto es equivalente a:
echo C:\Windows\System32
echo.C:\Windows\
echo.
echo.C:\Python37
echo.
Debido a las peculiaridades de DOS Batch, echo.
es idéntico, echo
excepto cuando no hay nada después. Si ese es el caso, simplemente no imprime nada, en lugar de decirle si ECHO
está activado o desactivado. Esto hará que la salida:
C:\Users\wizzwizz4> echo %path:;&echo.%
C:\Windows\System32
C:\Windows\
C:\Python37
C:\Users\wizzwizz4>
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 de echo.
. Esto se debe a que echo.
puede tener problemas cuando se llama un archivo echo
y 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 del echo
archivo afecte echo.
y qué hace?)
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 bits cmd
en 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 su echodot
lugar, hice un comando externo , cuál podría alias según echo.
lo deseado.
echo(
es la única versión segura.
echo.
puede no funcionar .