bash - spanish - how to make backticks
Lote equivalente de Bash backticks (5)
Cuando trabajo con Bash, puedo poner la salida de un comando en otro comando como ese:
my_command `echo Test`
sería lo mismo que
my_command Test
(Obviamente, este es solo un ejemplo no práctico).
Me pregunto si puedes hacer lo mismo en Batch.
Lea la documentación del comando "para": for /?
Lamentablemente, no he iniciado sesión en Windows para comprobarlo yo mismo, pero creo que algo así puede aproximarse a lo que desea:
for /F %i in (''echo Test'') do my_command %i
Puede hacerlo redirigiendo la salida a un archivo primero. Por ejemplo:
echo zz > bla.txt
set /p VV=<bla.txt
echo %VV%
Puede obtener una funcionalidad similar utilizando los scripts cmd.exe con el comando for /f
:
for /f "usebackq tokens=*" %%a in (`echo Test`) do my_command %%a
Sí, es algo no obvio (por decir lo menos), pero es lo que está ahí.
Ver for /?
para los detalles sangrientos.
Sidenote: Pensé que para usar " echo
" dentro de los backticks en un comando " for /f
" tendría que hacerse usando " cmd.exe /c echo Test
" ya que echo
es un comando interno para cmd.exe
, pero funciona de la manera más natural. Las secuencias de comandos de lotes de Windows siempre me sorprenden de alguna manera (pero no siempre en el buen sentido).
Tal vez estoy arruinando la sintaxis del estándar for /f
método for /f
, pero cuando puse un comando muy complejo que involucra && y | dentro de los backticks en el límite de for /f
, causa problemas. Una ligera modificación de lo habitual es posible manejar un comando de complejidad arbitrario:
SET VV=some_command -many -arguments && another_command -requiring -the-other -command | handling_of_output | more_handling
for /f "usebackq tokens=*" %%a in (`%VV%`) do mycommand %%a
Al poner primero su comando completo y complejo en una variable, luego poner una referencia a la variable en el límite en lugar de poner el comando complejo directamente en el límite del bucle for, puede evitar problemas de interpretación de sintaxis. Actualmente, si copio el comando exacto que configuré en la variable VV
en el ejemplo anterior en donde se usa, %VV%
, causa errores de sintaxis.