Here are two methods for enabling heterogeneous submission of jobs. These are jobs that may run on a variety of platforms, such as both Windows and Linux.

If Perl is available on all execute hosts

A single batch script can be defined to work on all Windows and Linux machines. If Perl is available on all potential execute machines, then depend on it, and write a Perl batch script. Name the script with the extension .pl, and Windows machines will use this extension to identify and run it as a Perl script. The first line of the Perl script will have #!, letting Linux machines know what to do.

TJ's shabang hack

Three parts to this set up make it work:

So, you have one script, that contains both Linux and Windows commands. It works on Windows as long as you have the program named #!.exe in the current directory (or in the path) that returns success.