2012-08-13 18 views
7

¿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 ``.

+0

Los archivos Windows .bat son un retroceso histórico, ¿por qué no instalar Perl en su lugar? – cdarke

+0

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. –

Respuesta

7

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.

+0

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

+0

@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

+0

@Mohsen - FOR es un comando interno, por lo que definitivamente está siendo manejado por el motor de línea de comandos. – dbenham

Cuestiones relacionadas