<p>I am writing a C# console application that takes a binary file, rips it apart, analyzes it, and stores the data into a database.  </p>

<p>We want to use BizTalk to orchestrate watching when a new binary file is placed in a directory and calling my application with the file name/names to be parsed.  </p>

<p>Can BizTalk run a command line program?<br>
Can it pass command line parameters to the program?<br>
How would I report back to BizTalk that the last run was a success or a failure?  </p>

<p>Thank you,<br>
Keith</p>

Biztalk is a server product so it will always be running in the background when you set it up in a production environment.
I'd suggest that if you're wanting to use BizTalk you set it up to watch the location where the file will be dropped, rip it apart, analyze it and then write out to the database all within a BizTalk workflow. Its exactly what it's been designed to do. The workflow could also contain notifications or you could just use BizTalk tracking to confirm if the operation has been successful. The only custom code you might need to write is a disassembler for your binary file to turn it into XML. This would be done as a receive pipeline component.
If that's all your doing though, BizTalk is a heck of an expensive option for just this. I suggest you write your own Windows service and use the
FileSystemWatcher
to intercept the fact that a file has been written and then do the processing in your C# code.