/ / Ejecutar archivo por lotes con argumentos - mysql, windows, batch-file

Ejecutar archivo por lotes con argumentos - mysql, windows, batch-file

Estoy trabajando en un proyecto que me obliga a usar el programador de tareas de Windows para ejecutar la consulta mysql, este es el contenido del archivo por lotes:

mysql -ufoo -pbar -D %1 < %2

cuando probé el archivo por lotes a través de cmd:

task_sheduler.bat dbName pathToSqlFile

Yo obtengo:

mysql -ufoo -pbar -D dbName  0<pathToSqlFile

Solo quiero decir eso esta funcionando, mi pregunta es de que se trata el Espacio extra y el 0, ¿de dónde vinieron?

  • El espacio extra está entre el dbName y 0
  • Estoy usando Windows 7 Ultimate Service Pack 1 (x64)

Respuestas

3 para la respuesta № 1

Supongo que su archivo de lote no tiene un @echo off comando, por lo que se refiere a el eco de los comandos que aparecen en la pantalla cuando se ejecuta un archivo por lotes. La visualización de estos comandos con frecuencia incluye caracteres adicionales que cmd.exe inserta para mostrar exactamente los comandos ejecutados.

En el caso de redirecciones, <input es una forma corta de Redireccionamiento stdin, y el número de Stdin es cero, por lo que la redirección real es 0<input. Lo mismo sucede con >output, que se repite como 1>output. cmd.exe también elimina múltiples espacios del código original e inserta los necesarios para mostrar claramente los comandos ejecutados.

Si no desea ver estas explicaciones de comando, simplemente inserte un @echo off comando al comienzo de su archivo por lotes.


1 para la respuesta № 2

cmd prefija todos los comandos de redirección por el identificador predeterminado si no se proporciona ninguno. Los mangos están definidos. aquí. 0<file por lo tanto significa que queremos que el archivo sea redirigido a la entrada estándar. El espacio extra está ahí para prevenir un comando como hi.exe<myfile de ser mal interpretado como hi.exe0 < myfile