Batch files are a fast and simple way of automating mundane things. There’s not a lot to them – if you can type in a command, you can type up a batch file. It’s about as easy as it gets and it has been built into every version of Windows since before even Windows.
There are a lot of pluses to batch files. They don’t need compiling so updates are simple: just edit the file and rerun it. In a sense, they’re even portable between devices and operating systems. The "in a sense" is that all operating systems support them. Again, this also goes back to before Windows existed; and even to before MSDOS existed.
The downside to batch files is that in a modern era of large hard disk sizes, we typically have very long paths to find a specific file.
The workarounds normally involve starting your batch file in the right directory and that simplifies paths to the required files; but it also means you can’t run the same batch file to do the same things with a different set of files elsewhere. You can end up with two (or three, or four, …) copies of the same batch file. The one batch file gets saved with each set of files that might need it. Updating the batch file becomes complicated because you have to find and update all the copies. Shortcuts to a single copy but with different "Start in" directories work better; but you are still left wondering, "which set of files is this shortcut going to process?"
Wouldn’t it be easier if you could just pick the set of files when you run the batch file? Wouldn’t that save having to have a copy (or a shortcut) for every directory that might ever contain a set of files?
In the Windows environment, batch files also suffer from a lack of user input. You can run a batch file, and it can tell you some things (like with the "echo …" command); but it can’t ask questions. You have to specify everything it needs to know, on the command line when you run the batch file.
That’s not great, but it does work – provided you are at a command prompt. That doesn’t work at all if you double-click a batch file from Windows Explorer.
What if you could ask questions in a batch file? You wouldn’t have to remember all the settings that are available for every batch file you have. You wouldn’t have to get their order right on the command line. You could just double-click a batch file and answer the questions.
How to Build Better Batch Files
The BatchTools programs include: say.exe, ask.exe and run.exe. They allow you to:
get a line of input from the user (eg "What email should I send it to?")
allow the user to pick a directory (eg this set of files)
allow the user to pick a file (eg "Which sales figures should I total?")
get a user choice from a list (eg "What dress size is the order for?")
get simple yes/no or proceed/cancel responses.
You have all of the features of the batch language plus a few programs to enhance it. The BatchTools can even provide a level of "indirection" – you can run a program that figures out what to run. This allows you to run any normal program but with the user supplied arguments.
"echo" is still available to you, but you might prefer "say". That gives you a more modern and user-friendly look.
Whilst the batch files are still just batch files, you get things like:
What Does It Cost?
Nothing. It’s freeware. Free for personal or commercial use.
Where Do I Get It?
GET IT NOW
Requires Windows (XP/Vista/7/8/10).
Read the frequently asked questions: FAQ.
Read the documentation: Documentation