2010-01-15 15 views
5

Estoy tratando de escribir un archivo .bat para automatizar algunos comandos de shell. La mayoría de los comandos son fáciles y puedo ponerlos directamente en el archivo por lotes, pero hay un comando que, en lugar de tomar los parámetros de la línea de comandos, espera que ingrese las opciones que desea usando "la entrada estándar". No estoy exactamente seguro de lo que eso significa. alguien puede decirme cómo hacer esto? El texto que me gustaría ingresar es el contenido de uno de los archivos en el directorio: "options.txt" que quiero concatenar con una variable dentro del archivo por lotes "$ (additionaloptions)".Enviar texto a la entrada estándar de una aplicación de consola de Windows

¿Tiene sentido?

Respuesta

7

La forma habitual de hacerlo en archivos .bat es usar echo para escribir un pequeño archivo de texto, luego redirigir el archivo de texto a la entrada estándar del comando.

@echo foo > bar.txt 
@echo if you need multiple lines >> bar.txt 

the_cmd < bar.txt 

En el ejemplo específico que sería algo así como

copy myfile.txt bar.txt 
@echo %variable% >> bar.txt 

El hecho de que son mención $ (variable) me hace pensar que se trata de un makefile en lugar de un archivo por lotes. para un makefile, hay una mejor manera.

Cuestiones relacionadas