¿Hay alguna sintaxis equivalente de Windows para ejecutar un comando dentro de otro comando en un archivo de script bat?Alternativa de Windows bat para el comando Bash en línea
En Linux, simplemente puede usar $(...) o ``.
¿Hay alguna sintaxis equivalente de Windows para ejecutar un comando dentro de otro comando en un archivo de script bat?Alternativa de Windows bat para el comando Bash en línea
En Linux, simplemente puede usar $(...) o ``.
Sí, al menos por las cosas simples:
@setlocal enableextensions enabledelayedexpansion
@echo off
for /f %%w in ('echo xyzzy') do set var=%%w
echo Output is %var%
endlocal
La salida de ese guión es:
Output is xyzzy
con el xyzzy
procedentes de la orden echo
.
Ejecutando for /?
desde una ventana de comandos debería darle una lista más completa de opciones.
Creo que esto es manejado por una construcción 'for-in' no internamente por el motor de línea de comandos de Windows. No parece funcionar en mi caso: http://stackoverflow.com/questions/11828801/imagmagick-how-to-add-a-gradient-splice-to-an-image-using-one-convert-command/11864792 # 11864792 – Mohsen
@Moshen, 'for' es la única forma en que creo que puedes hacer esto. Incluso 'bash' no está ejecutando el código con' $() ', simplemente está sustituyendo el resultado estándar de otro proceso. Eso no es diferente de almacenarlo en una variable de entorno y luego usar esa variable, como en mi respuesta. – paxdiablo
@Mohsen - FOR es un comando interno, por lo que definitivamente está siendo manejado por el motor de línea de comandos. – dbenham
Los archivos Windows .bat son un retroceso histórico, ¿por qué no instalar Perl en su lugar? – cdarke
Los archivos por lotes aún tienen un lugar, por ejemplo, si tiene que ejecutar uno como parte de un script de instalación. No puede suponer que Perl se instalará en el sistema del usuario. –