##### ### ## ### ######## ### ## ### ###TM ####### ####### ####### ######## ####### ####### ####### ### ### ### ### ### ### ### ### ### ## ## ## ## ## ### ## ## ## ## ## ### ### ### ## ### ### ### ## ### ## ####### ####### ## ######## ### ####### ## ###### ##### ### ## ######## ### ### ## ### #### Batch Runner Pro Run multiple programs in a batch.. http://corz.org/windows/software/batch-runner/ http://corz.org/windows/software/batch-runner/batch-runner-pro.php (c) corz.org itstory.. aka 'version history'.. aka 'changes'.. [known bugs at the bottom] Key.. * Fixes ~ Changes + New stuff Last updated: Tuesday Mar 26, 2013 1.0 Batch Runner Pro The new title says it all. This is a seriously beefed-up Batch Runner, designed for professional testing environments. These changes are mostly sponsored by the guys over at FEI who use it to help test their world-renowned electron microscopes. Thank you! Almost everything is new, here are the highlights.. + "Pre" and "Post" tests. Batch runner can now run three individual sections of commands, aka. "tasks". A "Setup" section, which runs before the main batch, and a "Wrap-Up" section, which runs after the main batch. These three sections each have their own tab which works almost* exactly the same way as the old Batch Runner list, except there are now three of them. (*it now has more functionality) The names of the sections are also configurable. + Batch Cycling. The main batch can now be looped. You can set also the overall duration of the main batch. Setting a duration of 0 (zero) instructs Batch Runner to keep cycling the main batch tasks until the user (or some catastrophically failed task) tells it to abort. + Random Cycling. By "random", I mean computer-generated random, which would be pseudo- random. You probably don't have the computing power for truly random numbers, if such things can even be actually generated. However, it's "random enough" for our purposes, enabling you to create more realistic test suites. NOTE: This even works if you are /not/ cycling the batch, Batch Runner will run through the tasks randomly until every task has been completed ONCE (unless the times runs out in the middle, of course). Also note, Batch Runner can disable the randomize option so it won't appear in the GUI - this prevents undernerdlings from accidentally altering your batch's randomize settings, be they enabled or disabled in the global or per-batch scope.. + Per-Batch Options. The cycle, randomize and time limit preferences, available inside the main Batch Runner GUI, each have a "master" and "per-batch" setting. New batches, or batches without their own options, inherit the master settings. Any changes you make to these settings when a batch is loaded, get stored (and loaded again) along with the batch. If you would like to see some other setting available in the per-batch scope, let me know. + Counters. While cycling the main batch, Batch Runner will keep a tally of the total number of times a task has completed, as well as the number of times a task failed (returned a non-zero result). These tallies are updated live in the GUI and log during a batch run. A simple summary of passes/fails/errors is also saved in your log. + Color-Coded Live Results Batch Runner can color-code the main batch display so you can see, at-a- glance which tasks have succeeded, which have failed, which have failed more than once and which, for some reason outside Batch Runner's control, wouldn't run at all. The pre-configured colors are: Green: Success Red: Fail Purple: Multiple Failures Pink: Catastrophic failure (abort condition) Yellow: Unable to run command. Note, we avoid blue, which can be hard to distinguish from the Windows standard theme selection color. These colors can, of course, be configured in your prefs. If you want to use red for everything except success, fine. You can also set default (reset) colors for text and background. So the list has to now display report colors /and/ selection colors. Here's how to easily see both.. To view the current selection, simply activate the list. The easiest way to do this, without destroying the actual selection, is to click on the column headers. To see the report colors again, simply click outside the list, for example, in the batches drop-down. Deselecting a row (Ctrl+Click) also reveals its report colouring. Note, even in report view, you can quickly deselect an item with a Ctrl-Click. Because of this simple functionality, if you are working with selections and click "Run Batch", the list immediately switches to report view so you can watch all the pretty colors. You can also instruct Batch Runner to ignore any current selections and always run /all/ the tasks in the batch. Whatever your working style, Batch Runner Pro has an option! + CountDown Timer. If you depress the key, the "Run Batch!" button turns into a "CountDown" button. Click it and you can enter a time to wait until beginning the batch run. The time input format is the same as the Time Limit input (5{minutes}, 25s, 2.5h, etc.). If you have TitleBar time enabled, you see a visual countdown, showing time remaining until the batch run begins. Holding the key whilst activating your chosen Run HotKey ("Enter", by default), gets you directly to the Countdown timer input. In other words, the HotKey for "Run Batch after Countdown" is Shift+Enter. + Windows Standard List Selection Behaviour! Unlike regular Batch Runner, Batch Runner Pro uses a ListView control to display the tasks (the old ListBox couldn't DO enough). This major overhaul to the GUI has brought with it many benefits (and a lot of work!). One of these is that you can use standard Windows Crtl+, Shift+ and Ctrl+Shift+ modifiers to select and deselect commands in the task list. + Error-Level Actions. Batch runner can respond in two ways to commands returning failure (non-zero) results. Either a) Notify & Log the error and continue (positive return values) or b) Notify & Log the error and abort the batch run immediately (negative return values), move on to wrap-up tasks. + Live Logging. Rather than dump a log file at the end of the entire operation, Batch Runner will now update the log with each task, enabling you to keep an eye on the results. Even the current task will be in the log, minus result, of course. It should be noted that logging preferences are loaded fresh for each run so if you make some change to your logging preferences, it will take effect as soon as you begin a new log - no need to restart Batch Runner. + Log Timestamps. Each log entry can be prefixed with a Time-Stamp. You can also configure the separators for this, if you desire. You can also have Batch Runner Pro TimeStamp only the command lines or *all* the lines, the former being more readable by humans, the latter by machines. Quite a few other aspects of log output are now also configurable, as well as more intuitive and easy-to-use, a lot more information is logged. See your automatically-updated ini file and generated log for more details! And don't forget you can use @Tokens in the log name, so you can have Time-Stamped log names, too, right down to the millisecond. Or auto- append existing logs, or automatically order them into time-stamped folders, or a combination, whatever suits you best. You can also specify UTF-8 logging, with or without the BOM, as well as which kind of linefeed character to use; "CRLF", "CR" or "LF" (Windows, Mac or *NIX, respectively). + The View Log menu item will now work from the moment a log is created, so you can easily get to your log from Batch Runner's tray menu. If you select a new batch for which a log already exists, again, the menu item will be available immediately - no need to go fishing about in your file system. + Configurable executable types. You can drag and drop .bat, .com, or whatever you like; as well as regular .exe files, of course) onto Batch Runner's list to automagically add new tasks. Previously you could only drop .exe files. You can use whatever you like when entering commands with the add command dialog. + Smart Auto-Size Columns. Batch Runner does a pretty good job of auto-sizing your columns to fit the content into the GUI, and importantly, keeping them that way when you resize the window. You can also override the size of the counter column and let Batch Runner do the rest, or disable this, and keep your column widths static no matter what you do to the GUI. You can drag the columns around (by their headers) to re-arrange them. + Title Bar Timer. This is optional, of course. Batch Runner will update the time, live, for the entire duration of the batch run, even during long tasks. + Duplicate and Rename Batch options added to the Batches Drop-Down. + Advanced GUI Controls For Advanced Users.. A new user, looking to create a new batch will click the "New Batch" button and be presented with a dialog in which to enter a name, and they are done. Fair enough. An advanced user will type the new name directly into the control and /then/ click the "New Batch" button. The new batch is created and displayed instantly, bypassing that tedious dialog altogether. Same story for the Rename and Duplicate batch controls. More time-saving features for folk just looking to get the job done! + New HotKeys: = Add new task = Delete the currently selected task(s) = Run the current batch = Pause/Resume batch run = Selects all tasks in the list = View log file for current batch = Edit preferences (ini) = Abort batch run You will probably spot how batch run control is all together at the right hand side of the keyboard. Not being entirely sure how handy this is on Tenkeyless keyboards, I made those keys configurable. Knock yourself out! + Portable Batches. Batch Runner has always had the capability of running in a portable state**. Now, so can your batches! Batch Runner will automagically and transparently transform paths of commands within the batch runner folder (or sub-folder). This won't interfere with drag and drop commands or clipboard paths but will enable you to distribute entire test suites, batch runner included, setup and ready-to-go, ** Note: Batch Runner has now inherited my "portable" switch. If you use this on your first run, Batch Runner will setup itself to run in portable mode, which basically creates a new ini file in the program's folder and sets that as the logging location. If you do it with an already-installed Batch Runner Pro, rather than create a new ini, your existing ini will be moved to beside the .exe. + Run Single Commands. Added batch list context menu option to run the currently selected command. Just like running the main batch, you get a color-coded result in the GUI - handy for testing commands. Note, Batch Runner will not attempt to hide the windows of launched processes during a single command run, even if that is the default setting for batches. + Re-ordering of tasks. Select "Edit List" from the list's context menu to get a dialog where you can re-order and sort your task list. + You can now drag & drop multiple programs onto the task list to create many tasks all-at-once. Enable auto-naming for maximum productivity.. + Auto-Name Tasks: If you have a lot of commands to add, or have no need for names for your tasks, you can enable auto-naming, and let Batch Runner take care of it, dragging and dropping to your heart's content! + Backward-compatible with old Batch Runner batches. Batch Runner Pro will update your ini file with all the new preferences and features, leaving your old settings and batches intact, automatically. + Both 32 and 64 bit versions available. + Added a new "launch" command-line switch you can use to launch a batch in the GUI from the command-line. c:\path\to\Batch Runner Pro.exe launch Also "launchdie" which does exactly the same as "launch" except, you guessed it, dies at the end of the batch run (assuming it ends). + More command-line options: You can still run and load batches from the command-line. But now you can create them, too. Simply send the name of your new batch on the command line and have it created and loaded, ready to accept new tasks. c:\path\to\Batch Runner Pro.exe My-New-Batch You can also use this same functionality, as ever, to load existing batches directly into a newly launched Batch Runner Pro GUI. When loading or creating batches in the GUI from the command-line, it's usually best to enclose any batch names containing spaces in "quotes", e.g.. c:\path\to\Batch Runner Pro.exe "My New Batch" This isn't necessary when running batches from the command line with "launch", "run" or "launchdie", this would be fine.. c:\path\to\Batch Runner Pro.exe launch My New Batch + Auto-Refreshing Log: During long tasks, Batch Runner can keep your log file updated, which can be useful when incorporating with other systems. A refresh interval can be set, after which time, Batch Runner Pro will append a simple "." (dot) to the current log line (altering its update time, size and checksum). When the task is complete, these dots are removed and the result takes their place, as if nothing happened. + Batch Runner Pro is the first program to adopt my new software licensing model. From your side of things, the biggest change is that everyone now gets their own specific key. Also it's a lot easier to enter! You can now also get to the registration dialog by clicking the Batch Runner logo in the About Box. +Click to force up the dialog if you went to re-register for any reason. Click the registered-to address for custom options. By the way, you can quickly get to the About Box via the secret HotKey: Win+Alt+A. + Online Version Checking - Batch Runner Pro can optionally check for newer versions of itself and optionally direct you to the download page. You can also specify the interval between checks, which are performed when Batch Runner Pro quits. The first time it attempts this, it will ask you to specify the interval between checks, in days. If you wish to disable version checking altogether, enter 0. It is nifty, though! + Added a minimize button to the main GUI (it's often easier than heading to the tray!) + LOTS of under-the-hood improvements both inside and out. If it's possible to anticipate a user behaviour or best option, Batch Runner Pro will. If there is some way to shave seconds off your workflow, Batch Runner Pro will do it. For example, if you delete a batch from the batches drop-down, Batch Runner Pro won't simply load the next batch, it will load the /previous/ batch, up to a total of one hundred batch selections being remembered internally. Every little helps! + MANY new options in your ini file, things once hard coded are now preferences, enjoy! + Added a new option to the Batches context menu - "Save As AutoRun", which saves the current batch as a clickable command that will launch Batch Runner Pro with the current batch, run it and then die. You can also select from foreground or background operation. + Batch Runner Pro will now resolve shortcuts (.lnk files) of dropped items. ~ There is now a single menu item for pause/resume, its function switching depending on the running state. The HotKey is still easier! * Fixed a potential log path issue which could kick in if you used a very long log name in a very short path. Batch Runner FREE: 0.6.5 + Batch Runner will now check for potential looping conditions. While this is unlikely, it is possible to run, for example, a command that runs Batch Runner with the command that runs Batch Runner with a command that runs Batch Runner, and so on, and do nothing except spawn zillions of instances of Batch Runner. Eventually, this could bring the system down. Now you can set a limit in your preferences, up to a maximum of ten instances. 0.6.3 + Added a "View the Log" option to the system tray menu, which activates once a log has been created, and will always load the most recent log into your preferred editor. + Batch Runner will now create (up to 9) sequential backups of deleted batches inside the ini file (if you create and delete another batch with the same name). 0.6.2 * Fixed a bug where deleting all the batches would incorrectly set the current batch to a deleted batch. Also, Batch Runner could be fooled into loading its own preferences as a batch, if you set them as the "current_batch". It should now be impossible to fool Batch Runner into loading such a batch, non-existent batches, etc. ~ Attempting to add a new command when there are no batches will now first bring up the "New Batch" dialog, so you have something to add the command to. 0.6.1 + Batch Runner now uses a different tray menu while running commands. + The tray icon now flashes during batch runs, to let you know it's active (in both gui and background mode). + Added Pause, Resume and Abort menu items to the System tray menu that appears during batch runs - kinda essential, really. During pause, the tray menu icon stops flashing. + You can now drag and drop programs directly onto Batch Runner's main command list. + Added "Delete" HotKey to delete the selected commands from the list. + Batch Runner now checks for out-of-desktop dimensions, and fixes them automatically. + Added an "Edit Preferences" option to the tray menu - you can set your preferred editor in the prefs, too. ~ Started a habit of making all message boxes run as children of the main GUI so there's only one taskbar entry during warnings and such. It's something I've not really considered before - I usually click such things immediately away. This is tidier. + Cleaned up some of the dialogs and what-not, correct icons, modality, window titles, and so on. + Added "beep" option to have an audio alert when the batch is complete. This might be useful when running batches transparently, with no GUI. Options.. false no audio true use default PC speaker beep at 1000Hz beep PC speaker using this frequency (in Hz) play this WAV file + Added more exit codes - handy if running Batch Runner from inside Batch Runner, scripting it, or whatever.. 0 Normal termination -9 User hard quit from tray. -1 One or more of the batch's commands failed (exited with an error state) 5 Chosen batch is missing or invalid (in background mode) 171 Missing ini file (and couldn't create one) 0.5 [first public release] + Added hotkey to the add & edit inputs - more intuitive. + Incorporated a few more of my usual app "features"; namely, auto ini updating (leaves existing batches and settings intact), optional portable operation, ini @tokens, etc., as well as lots of associated functionality, auto-log folder creation, and so on. I also created a new token; @batch, which translates to the name of the batch being run, as well as a couple of new date & time tokens, @date and @now. + Added context menu to the combo drop-down, with "reload" option - only really useful if you have only one batch, and add a batch to the ini manually, and want it to show in the menu. + Added a "Reload list" option to the list's context menu. + Expanded command-line options to include the "run" keyword, which invokes Batch Runner to immediately execute the current batch and exit. You can also specify a batch on the command-line (spaces in batch names are okay). e.g. to run "foo bar batch" immediately, do.. C:\Path\to\Batch Runner.exe run foo bar batch + When you specify the "run" switch, Batch Runner launches as a background process, runs the specified batch, and then exits. No GUI is created. It perhaps doesn't go without saying that as well as scripting and scheduling Batch Runner, this means that you can run instances of Batch Runner from *inside* Batch Runner, as Batch Runner commands. Think about it. ;o) + Batch Runner will now return a valid exit code on exit. If all was well, the exit code is 0. -1 means one or more of the commands had an exit error. The individual application errors will be in the log, if created. * Fixed a bug where the normal tray would appear in background mode; there is now a separate tray menu for this, with one item - Exit, which will quit Batch Runner after the current command completes. + The current running command is now displayed in the System Tray ToolTip. 0.4 + Added delete warning messages, and ini options (you can switch them off). + Added help ToolTips, and an option to disable them, if required. + Batch Runner will now select all the commands in a newly selected batch, so it is ready to run. This behaviour can also be disabled in the prefs. + Added drag+drop to the add/edit dialogs, as well as cool height snapping. + Added Tray toggle and tray menu (about, exit & run batch) + The gui controls will now grey out during batch runs, to avoid potential confusion and mishaps. Also the tray icon becomes unclickable. + Added backup for deleted section (they are renamed "deleted-section") and will no longer display in the drop-down (though remain in the ini, just in case). If you want to completely delete a batch, you must do this in the ini. * Editing commands no longer loses the command's selection in the list. 0.3 + Added more buttons, New Command, New batch, and an edit command for the list's concept menu, as well as the dialogs to handle these. + A few minor improvements to the gui, spacing, control resizing and such. The gui now has a minimum size it will snap to if you make it too small. * I fixed the window size drift. That always annoys. + Batch Runner can load-up a new default batch on the command-line, e.g.. C:\Path\to\Batch Runner.exe My Batch 0.2 + Added list concept menu - now you can delete and select commands from the menu. Added preferences for height, position, etc., which are saved to the ini file. + Lists are a pain. I'm gonna be using the UDFs for this one! 0.1 Basic batch running - a list, a drop-down, and a "Run batch!" button. All editing is via the ini file. Batch Runner also does basic logging. *