Batch Files
Do all the bulk file processing operations with just one powerful tool!
How it Works
Choose Processing Mode and Select Files
Batch Files can process files in 3 distinct modes:
- Manual Mode - files are selected for processing, which is then started manually by clicking on the Start button
- Automatic / Background Mode - "monitors" are setup that scan specified folders for either existing, new, or modified files matching criteria, which are then automatically processed once the program starts "monitoring"
- Scheduled / Triggered Mode - processing is performed by processing jobs that can run on schedule or be started on specified events
In Manual mode files for processing can be selected and added to the processing list in multiple ways:
- One by one or in groups
- All from a given directory
- Recursive searching for files with names matching a pattern
- Drag & drop from Windows Explorer
- Paste from clipboard, paste paths
- Import from text-based file containing paths
- Right-clicking on selected files or folder in Windows Explorer
Specify Actions to Perform
You specify which actions and operations should be performed during processing using Action Sequence.
Specify which actions should be performed and in what order by simply drag & dropping them.
Then you can adjust various options and settings for each action to specify all the details pertaining to the operations you want the action to do.
- Perform certain actions only when specific requirements are met using conditions
- Save action sequence for future use as a template
- The hierarchical structure is clearly displayed if conditions are used
- Get instant feedback about any errors
- Actions are color-coded to help you distinguish different types of actions
Note: the actions that are available will depend on the product that you are using.
Step 3 - Select Output Format, Process, and Save
In the last step you choose the destination directory where processed files will be saved; file naming pattern; output mode - normal, split, join, or zip; and some other processing options.
- Use both relative and absolute paths when specifying output location.
- Specify very detailed file naming pattern: use file attributes, random characters, hashes, EXIF meta-data, and more!
- Join, split, or zip files with ease.
- Adjust file dates and attributes
- Set backup and other options
When you have configured all the output options, the program can begin processing files. As it processes files, file list will be automatically updated reflecting detailed progress. Processing can be stopped any time.
At the end the program will display a detailed summary; a processing log will also be available so you can examine any warnings or errors if they occurred.
Top Features
- 4 Processing Modes Manual, Automatic / Continuous, Triggered / Scheduled, Command Line.
- Many processing actions: search & replace, insert, delete, copy, move, format, extract, convert, encode, etc.
- 4 Output Modes: normal, split files, join / merge files, zip files.
- Conditional Processing lets you perform different operations with different files.
- Advanced File Naming and Renaming: use file properties, random characters, EXIF tags, perform search and replace.
- Advanced File Search: advanced wildcards, file properties, regular expressions, search in file contents.
- Complete Unicode Support throughout the program.
- Extensive support for Regular Expressions (RegEx) throughout the program.
- Can be integrated with Windows Shell.
- Very detailed processing logging capabilities.
- Fast multi-threaded processing that can utilize all available cores/CPUs.
- Run multiple program instances simultaneously.
Search & Replace
Basic Text Replace
Replaces specified occurrences of a specified text string in a file with another string.
- Built-in text editor supporting drag & drop, clipboard operations, undo/redo, etc.
- Multi-line find and replacement fields
- Case insensitive (ignore case) search option
- Supports wildcard character matching
- Include original match in the replacement string
- Use original characters at specified positions in the replacement string
- Specify which matches should be affected and included: N matches/all matches (from start/end) or (following first/last M matches)
- Restrict search range to either specified character or line ranges
- Support for RegEx-style character escapes: \x9E, \080, \u12AB
RegEx Replace
Perform search and replace operations in text files using Regular Expressions.
- Built-in Regular Expressions editor with color syntax highlighting, contextual tooltips, and drag & drop
- RegEx toolbar that makes it easy to insert various RegEx elements and predefined patterns
- Use RegEx substitutions so you can include original matches or sub-matches in replacement pattern. This allows you to, for example, swap two pieces of text:
First, Second
Second, First
- Use 6 built-in RegEx helper tools to help you generate RegEx patterns: tag selector, number selector, lines selector, text selector, expression builder, and character map.
- All major RegEx options supported: Multiline
m
, Single lines
, Ignore casei
, Ignore pattern whitespacex
, explicit capturen
, ECMA Script, Right to Left, Culture-Invariant. - Restrict search range to either specified character or line ranges, like "search only within first 50 lines"
- Specify how the search is performed: on a per-line basis, or by searching the whole file / block of lines
- Specify maximum number of replacements to perform
Binary Replace / Replace Bytes
Replaces specified occurrences of a specified byte sequence or pattern in a file with another byte pattern.
- Built-in hex editor to allow for easy byte entry
- Supports wildcard byte matching, where specified byte will stand for any byte
- Include original match in the replacement byte sequence
- Use original bytes at specified positions in the replacement byte sequence
- Specify which matches should be affected and included: N matches/all matches (from start/end) or (following first/last M matches)
- Restrict search range by specifying the byte range, like "search only within first 50 000 bytes"
- Built-in converter tool to convert between decimal, hexadecimal and binary numbers or byte representations
Multiple Text Replace
Replaces occurrences of a specified text strings in a file with corresponding replacement strings. Similar to Basic Text Replace, but allows to define unlimited number of search and replace pairs at once.
- Search and replace pairs are entered in a grid
- Search and replace pairs can be saved to a text file
- Load search and replace pairs from a text file or paste from clipboard
- Ability to swap search and replace columns
- Case insensitive (ignore case) search option
- Supports wildcard character matching
- Include original match in the replacement string
- Use original characters at specified positions in the replacement string
- Specify maximum number of replacements to perform per search-replace pair
- Restrict search range to either specified character or line ranges, like "search only within last 50 lines"
- Support for RegEx-style character escapes:
\x9E
,\080
,\u12AB
Multiple RegEx Replace
Replaces occurrences of text strings matched by specified RegEx patterns in a file with the corresponding replacement patterns / strings. Similar to RegEx Replace, but allows to define unlimited number of search and replace pairs at once.
- Search and replace pairs are entered in a grid that supports syntax highlighting
- Search and replace pairs can be saved to a text file
- Load search and replace pairs from a text file or paste from clipboard
- Use RegEx substitutions so you can include original matches or sub-matches in replacement pattern, allowing you to, for example, swap two pieces of text.
- All major RegEx options supported: Multiline (m), Single line (s), Ignore case (i), Ignore pattern whitespace (x), explicit capture (n), ECMA Script, Right to Left, Culture-Invariant.
- Restrict search range to either specified character or line ranges
- Specify how the search is performed: on a per-line basis, or by searching the whole file / block of lines
Operations with Text
Format / Transform Text
Perform various formatting operations and transformations with text matched by RegEx pattern (for example a pattern matching all URLs) and/or specified by lines range (first 40 lines, or the whole file for example).
You can use this action for all sorts of things like: sorting items in a long list; numbering lines in a file; URL-encoding links; capitalizing all XML tag names; etc. Possibilities are almost limitless with this very powerful action!
- 18 built-in text transformations: change letter case, sort, shuffle, reverse order, compute hash, escape/unescape, trim text, URL encode/decode, Unicode char code converter, Morse code converter, numeric operations, and more.
- Virtually any text can be selected using a combination of RegEx pattern and lines range.
- Apply transformation by replacing original text, or inserting modified text before or after original.
- Ability to set prefix and suffix to insert before and after the transformed text.
- Built-in RegEx editor with syntax highlighting for creating RegEx pattern that will match affected text.
- Preview the effects selected transformation will have on the supplied text by testing it on a sample input right within the action's UI.
RegEx Extract Text
Extract text from files matched by the supplied Regular Expression pattern. The result of the operation will be that the file will contain only the text matched by the RegEx pattern together with prefixes and suffixes if defined.
For example you can use this action to easily extract all e-mail address from a file and have them placed one per line. It is especially powerful if used in conjunction with Join Output Mode, where all processed files will be joined together at the end, so that in this example e-mail addresses extracted from all the files will be collected in a single file.
- Built-in Regular Expressions editor with color syntax highlighting, contextual tooltips, and drag & drop
- RegEx toolbar that makes it easy to insert various RegEx elements and predefined patterns
- Restrict search range to either specified character or line ranges, like "search only within first 50 lines"
- Specify how the search is performed: on a per-line basis, or by searching the whole file / block of lines
- Specify optional prefix and suffix to insert before and after the every RegEx match.
Insert Text
Insert supplied text at the specified position in a file.
- Specify the exact line number where text should be inserted (relative to beginning or to end)
- Insert text into / at every lines
- Specify how many insertions to perform
- Option to force insert even if insertion position is outside the range of file
- Specify where to insert text within a line (at the start, at the end, at Nth character...)
Delete / Remove Text
Remove a block of text specified by line and character range from a file.
With this action you can perform operations like: remove first 10 characters of the last 100 lines, or remove 5 lines that follow first 3 lines entirely.
- Specify exactly which lines are affected: "lines 12-19 counted from the end"
- Specify exactly which characters within a line are affected: "first 12 characters"
tip To remove specific instances of text, or text matched by a particular pattern, use any of the available Replace operations and set the Replacement field to be empty.
Copy Text Content
Copy a block of text specified by line or character range to a specified position within the same file. For example, you can copy first 2 lines in a file to the end of the file.
- Specify exactly which block of text should be copied using either a character or a line range (i.e. all text from character 300 to character 552).
- Control the number of copies
- Overwrite control that will determine if the copy operation will overwrite existing text, or if text will be inserted instead
- Destination position can be absolute (i.e. copy to Nth line relative to start/end of file)
- Destination position can be relative (i.e. copy N lines up/down relative to the block of text)
- Various options if the destination position is out of range: cancel operation, copy up to available position, copy to correct position inserting empty space as needed
- What to do if the block of text is out of range: cancel operation, copy the available portion of the text block
Move Text Content
Move a block of text specified by line or character range from one position to another within the same file. For example, you can move last 10 lines from the end to the start of the file.
This action is very similar to Copy Text action, except it performs a Move operation instead, whereby original block of text will be removed. It is therefore equivalent to a Copy Text followed by Delete Text actions.
- Specify exactly which block of text should be moved using either a character or a line range (i.e. all text starting at line 90 to the end of file).
- Move text more than once (control number of copies to make at the destination)
- Overwrite control that will determine if the move operation will overwrite existing text, or if text will be inserted instead
- Destination position can be absolute (i.e. move to Nth line relative to start/end of file)
- Destination position can be relative (i.e. move by N lines up/down relative to the block of text)
- Various options if the destination position is out of range: cancel operation, move up to available position, move to correct position inserting empty space as needed
- What to do if the block of text is out of range: cancel operation, move the available portion of the text block
Text Transformations
Batch Files offers various text transformations and formatting operations that can be performed on specified parts of text in files. These transformations are performed by Format / Transform Text Action:
Format / Transform Text Action allows you to perform various formatting operations and transformations with text matched by RegEx pattern (for example a pattern matching all URLs) and/or specified by lines range (first 40 lines, or the whole file for example).
You can use this action for all sorts of things like: sorting items in a long list; numbering lines in a file; URL-encoding links; capitalizing all XML tag names; etc. Possibilities are almost limitless with this very powerful action!
- 18 built-in text transformations: change letter case, sort, shuffle, reverse order, compute hash, escape/unescape, trim text, URL encode/decode, Unicode char code converter, Morse code converter, numeric operations, and more.
- Virtually any text can be selected using a combination of RegEx pattern and lines range.
- Apply transformation by replacing original text, or inserting modified text before or after original.
- Ability to set prefix and suffix to insert before and after the transformed text.
- Built-in RegEx editor with syntax highlighting for creating RegEx pattern that will match affected text.
- Preview the effects selected transformation will have on the supplied text by testing it on a sample input right within the action's UI.
Text Formatting Transformations
- Change Letter Case - change letter case in a piece of text:
UPPER CASE
,lower case
,Capitalize first letter
,capitalize last letteR
,AlTeRnAtInG lEtTeR cAsE
,iNVERTED LETTER CASE
- Trim Text - remove leading and/or trailing spaces from text
- Format Text Properly - turn sentences like this:
this is is a short,sample sentence( bad)
into this:This is a short, sample sentence (good).
- Reverse Order of Characters - Reverse the order of characters in a piece of text:
sample
toelpmas
.
List Operations Transformations
The operations below work on lists, where a list is any text that contains specified string separators that split the text into "items". For example a simple text file with multiple lines can be viewed as a list where the items are the lines, and the separators are the line breaks. You can define your own separators letting you perform operations below on text with strings separated by comas, tabs, or semicolons for example.
- Reverse Order - Reverse the order of elements in a list
- Sort List - Sort items in a list: ascending order, descending order
- Shuffle List - Randomly distribute items in a list
- Remove Duplicates - Remove all extra copies of items that appear more than once
- Number List - Number items in a list by inserting numbers in specified format in front of the items
Text Converters
- Base 64 Converter - Convert byte representation of specified text in a specified encoding to Base-64 and vice versa
- HTML Encode / Decode - HTML encode/decode specified string
- URL Encode / Decode - URL encode/decode specified string
- Unescape String - Remove character escapes from the specified string
- Encrypt / Decrypt - Encrypt/decrypt UTF8 string using specified algorithm and password
- Morse Code Converter - Convert text to and from Morse code
- Unicode Character Code Converter - Convert text string to its representation by Unicode character codes (in specified format - decimal, hexadecimal) separated by comas, and back.
Miscellaneous Transformations
- Whole Number Operations - Treats text string with digits actual numbers and allows their subsequent modification by performing basic arithmetic operations: add +, subtract -, multiply ×, divide /, whole division \, remainder %. The second operand (number to add, subtract, etc.) can be specified. For example you can select all numbers 3-digits long using Regular Expressions Number Selector and then increment their value by 1 with this operation.
- Hash Generator - Generate hashes (MD5, SHA1, SHA2, RIPEMD, CRC) for byte representations of specified text strings in specified encoding
Hex-Editing & Binary Operations on Bytes and Bits
Insert Bytes
Insert supplied byte sequence at the specified position(s) in a file specified number of times.
- Specify the exact position where block of bytes should be inserted
- Insert block repeatedly every specified number of bytes within a defined byte range (i.e. insert every 5 bytes from offset 20 to offset 120)
- Specify how many insertions to perform
- Option to force insert even if insertion position is outside the range of file
Delete / Remove Bytes
Remove a specified block of bytes from a file. This operation reduces file size!
With this action you can perform operations like: remove first 20 bytes from a file.
- Precisely specify which block of bytes should be removed: specify its starting offset (position) and length
- Delete once (byte block is deleted at the specified offset)
- Delete multiple times (N bytes are deleted starting at specified offset, then M bytes are skipped, then N bytes are deleted, then M bytes are skipped,... until the specified ending offset)
To remove specific byte blocks (those matched by a pattern), use Binary Replace action and set the Replacement field to be empty.
Copy Bytes
Copy specified block of bytes to a specified position within the same file. This operation increases file size! For example, you can copy first 200 bytes in a file to the end of the file.
- Specify exactly which block of bytes should be copied (i.e. 333 bytes starting at offset 251).
- Control the number of copies
- Overwrite control that will determine if the copy operation will overwrite existing bytes, or if the bytes will be inserted instead
- Destination position can be absolute (i.e. copy to Nth offset relative to start/end of file)
- Destination position can be relative (i.e. copy N bytes up/down relative to the byte block)
- Various options if the destination position is out of range: cancel operation, copy up to available position, copy to correct position inserting empty space as needed
- What to do if the block of bytes to be copied is out of range: cancel operation, copy the available bytes
Move Bytes
Move specified block of bytes from one position to another within the same file. Depending on options, this operation may increase file size! For example, you can move file's last 10 bytes to the beginning of the file.
- Specify exactly which block of bytes should be moved (i.e. 333 bytes starting at offset 251).
- Move the bytes more than once (control number of copies to make at the destination)
- Overwrite control that will determine if the move operation will overwrite existing bytes, or if the bytes will be inserted instead
- Destination position can be absolute (i.e. move to Nth offset relative to start/end of file)
- Destination position can be relative (i.e. move by N bytes up/down relative to the byte block)
- Various options if the destination position is out of range: cancel operation, move up to available position, move to correct position inserting empty space as needed
- What to do if the block of bytes to be moved is out of range: cancel operation, move the available bytes
Bitmask
Perform bitwise operations on all bits of a block of bytes (word) of a given size.
- Variable size of the block of bytes / word length: 1 to 16 bytes
- 7 operations can be performed: NOT, AND, OR, XOR, NAND, NOR, XNOR
- Specify bitmask with 0s and 1s (not applicable if operation is NOT)
- Control exactly which bytes will be affected by defining a byte range over which the operation will be performed
- Optionally control which individual bytes will be affected by supplying a byte pattern (operation will be performed on matching bytes only)
Encode, Decode, Convert
Change Text Encoding
Changes the encoding / code page of a text file by converting it from one encoding to another. For example, convert ASCII to UTF8, or Cyrillic to Unicode.
- Supports all encodings installed on your system (typically over 100): UTF-7, UTF-8, UTF-16, UTF-32, Unicode (Big-Endian), US-ASCII, Western European, Cyrillic, Greek, Arabic, Chinese Simplified, Chinese Traditional, Japanese, Korean, Baltic, Central European, Latin, IBM EBCDIC, DOS, ISO, Windows, MAC, etc.
- Source encoding can be automatically detected or selected manually
- Additional options for Unicode: include byte marks, Big/Little-Endian
Binary / Decimal / Hexadecimal to Bytes Converter
A text to bin and bin to text converter (aka hex to bin and bin to hex) that converts a binary file (raw bytes) into byte representations encoded in either hexadecimal, decimal, octal, or binary form in a text file with specified formatting and vice versa.
- 4 byte formats supported: binary, octal, decimal, hexadecimal
- Convert both ways: bytes to bin/oct/dec/hex, and bin/oct/dec/hex to bytes
- Different formatting options: upper case, leading zeros
- Control output when converting from raw bytes: bytes per line, byte value separator, line prefix and suffix
- Convert to raw bytes using text file with fixed-length byte values (2 in case of hexadecimal, 3 in case of decimal, etc.)
- Convert to raw bytes using text file with possibly variable-length byte values that are separated with some separator
Miscellaneous Actions
Encrypt / Decrypt
Encrypt or decrypt a file using specified key(s) / password and symmetric encryption algorithm.
- 4 encryption algorithms: AES / Rijndael, Triple-DES (3-DES), RC2, DES
- 2 modes of operation: simple and advanced
- Simple mode lets you specify a single Unicode password to encrypt / decrypt data with from which encryption keys will be computed using SHA2 hashing algorithm
- Advanced mode lets you specify actual encryption keys directly and select their length in bits (length will depend on the selected encryption algorithm)
- 2 encryption keys can be specified: the seed (initialization vector), and the primary key used by the block cipher
- Convenient secure auto-generation ability for both password and keys
- Encrypt / decrypt the whole file or just the specified bytes in range
Generate Hashes / Checksums
Generate (compute) hash / checksum (cyclic redundancy check or CRC) of the selected type for either the whole file or part of it and save it in either text or binary format.
- 8 algorithms are supported: MD5, SHA1, SHA2 (256 bit), SHA2 (384 bit), SHA2 (512 bit), RIPEMD-160, CRC16, CRC32
- Generate hash in binary format
- Generate hash in text format
- Control hash formatting in text mode: lower/upper case, hyphens
- Ability to insert hash in binary format (actual bytes) at the beginning of a file
- Ability to append file path when generating hashes in text format
- Compute hashes for either the whole file or just the specified bytes in range
NoteYou can easily compute and record hashes of all files you are processing and store them in a single file if you: 1) select text format for the hash and enable "append file path" option, and 2) set output mode to Join, so that the resulting file will contain file paths and hashes of all the processed files.
In-Process File Save
Save the current result of processing a file with the specified name to the specified folder.
By default, all processed files are saved at the end of processing according to the settings you select in Step 3 (file name, output location, output mode, etc.). With this action however, you can save the file more than once and during different stages of processing.
This is very useful if you need to save the file to several locations; or if you need to keep different versions of the file (one before you apply a particular action or actions, and the other once the action or actions have been applied).
- Specify file name pattern to use
- Specify output destination directory (either absolute path to existing directory, or a relative path)
- Control backup and overwriting behavior with options
- Ability to set file dates (created, modified, accessed)
- Ability to control file attributes (archive, compressed, encrypted, hidden, not-indexed, read-only, system, temporary)
Manual Processing Mode
In Manual Mode you explicitly select files for processing in a variety of ways. You can drag & drop files from Windows Explorer; paste them from clipboard; add all files from a given folder; add specific files by selecting them from a list; search for specific files that match given criteria; or paste file paths.
Additionally you can further refine the file list by unchecking the files you wish to temporarily exclude from processing.
When satisfied with file selection, you can then manually process the whole batch. Processing can be started as long as the file list contains at least one checked file.
Manual Processing Mode
In Manual Mode the program processes files only upon explicit initiation (when you add files, and click on the Start button).
Files can be added to the processing list in a variety of ways:
- Files can be selected individually
- All files from a particular folder can be added in one click
- Recursively scan directories and look for files that match given criteria
- Drag and drop from Windows Explorer / Folder / Desktop
- Import from a text-based list of file paths
- Paste from clipboard
- Open from previously saved file list
- Directly from Windows by selecting files in Windows Explorer, right-clicking, and launching the program that way (selected files will be automatically added)
Processing in Manual Mode
When files are processed in Manual Mode, a detailed progress is displayed right within the file list, letting you know which filea are being processed and what is the processing stage. A processing result will be displayed in the file list as well once the file has been processed. You can then click on that processing result to see a detailed processing log for the file.} else if (Model.ISBI) { - all through a visual pie chart.
In addition, you can easily filter the file list by processing result status. For example, you may remove all successfully processed files with just one click, leaving only those that had issues or were skipped.
- Add and remove files easily
- Save file list for future use and append existing lists
- Temporarily prevent processing of certain files by unchecking them
- Files are color-coded after processing, making it easy to spot problems
- File path is intelligently drawn whereby file name stands out from the whole path, the start and the end of the file path are always visible
- An icon is displayed next to every file making it easier to identify file type
- Detailed tips appear when you hover over files displaying file properties and even file's contents
- Processing result is displayed right within the file list with appropriate icon and a link to a detailed log
Automatic / Background / Continuous Processing Mode
In Automatic Mode, instead of selecting specific files for processing, you setup "monitors" that tell the program which files should be processed and when. The processing is performed automatically and continually when the specified conditions are met and the program is in the active monitoring mode.
A monitor works by performing periodic scans of the specified folder(s) for all the files that match given criteria and satisfy monitor's behavior type (see below). All matching files that were found by the monitor are then put into the processing queue. Periodicity of the scan/check can be controlled and can range anywhere from 1 minute to several hours or even days.
Depending on the monitor behavior type, file processing may be initiated under different conditions:
- File is Present - processing is performed on all files matching criteria located the monitored folder (same file may be processed multiple times unless destination and original file paths differ and the original files are deleted after processing).
- File was Modified - processing is performed on all files that have been modified since the last time the monitored folder was checked.
- New File was Added - processing is performed only on the new files that were added to the folder since the last time the folder was checked.
There is no limit to how many monitors you can setup — it only depends on the system resources that are available to you. The monitor setup can be easily saved to a template file for future use.
Once you have setup the monitors and actions, you can start monitoring and processing files. Unlike the Manual Mode, processing in the Automatic Mode can be paused, so you can edit both the monitors and actions in the Action Sequence, and then safely resume processing.
Automatic Mode is ideal for cases when your workflow involves continually working with small batches of files that are coming in periodically and require similar kind of processing.
3 Types of Monitors
The program supports 3 kinds of monitors: File Exists, File Added, and File Changed. Depending on the kind of monitor you setup, the processing will be triggered only when appropriate condition is met.
For example, if you set up a File Exists monitor, the program will always process all qualified files in the monitored folder as long as they are present; however if you set up a File Added monitor, the program will process only the new files that have been copied to or moved to the folder since the start of its monitoring.
How Monitors Work
The monitors work by continually scanning the specified folder (directory) and subfolders for specified files that match a predefined naming pattern (mask) as well as other properties. The scanning happens at equally spaced time intervals that you define (refresh rate).
Among the file properties that may be examined are: file size, file dates, file attributes. Thus Batch Files will enqueue for processing only those files that match all the requirements specified in the monitor.
Monitors List
After a monitor has been set up, it will appear in the list of monitors.
You can define as many monitors as you like subject to the system resources you have and the product edition that you are using. Additionally, monitors can be enabled and disabled with a single click.
You can also save and open monitor lists easily, so you can reuse your monitor setups later.
Processing in Automatic Mode
In automatic mode processing works in 2 stages. First, the monitor(s) scan the specified folder(s) for any valid files, and add them to the processing queue. Then the program automatically processes all the files in that queue. These 2 stages need not be consecutive, as the program begins processing as soon as the queue is non-empty.
Unlike in the Manual Mode, in the Automatic Mode you can pause processing, make the changes to the actions in the actions sequence and / or the monitors, and then resume.
Triggered / Scheduled Processing Mode
Triggered or Scheduled Processing Mode lets you define different processing jobs that can be executed on schedule or a particular trigger, such as: on every Monday at 2:00
; at Logon
; on a particular system event; etc.
The program does not need to be running for the processing job to be activated - it will be automatically started with the right command line parameters at the right time by Windows Task Scheduler Service (which needs to be enabled for this feature to work) and begin performing the tasks defined by the processing job.
Processing jobs are easily managed within the program, but should the need arise, you can also modify their properties in Windows Task Scheduler directly.
Batch Files can perform processing jobs in 3 different modes:
- Command Line Mode - only the console window will be displayed.
- GUI Mode - program is launched and performs processing displaying progress in regular Graphical User Interface.
- Invisible Mode - no user interface of any kind is shown, and the processing job is performed in the background.
All processing jobs can be different: for every job you can specify not only the trigger or schedule that will determine when it runs, but also the files to be processed, actions to be performed, output file name pattern and directory, and a host of other options.
Triggered / Scheduled Processing Mode
In Triggered or Scheduled Processing Mode, file processing is started upon a specified event (trigger) or at a specific time as per the specified schedule.
You can create as many triggered/scheduled processing jobs as you want - all with different schedules, files to process, actions to perform, and other settings.
Batch Files need not be running in order for the processing jobs to be activated, the program and processing is started automatically by Windows Task Scheduler Service.
Creating Processing Jobs
Creating a processing jobs is straight forward. You define some general settings such as job's name, mode of operation. Then you specify the job's schedule or trigger that will determine when the processing job is actually ran. Finally you specify the which files should be processed; how the files should be processed (which actions should be performed); and where the processed files should be saved.
Managing Processing Jobs
Once the processing job has been created, it appears in the list of processing jobs. This list reflects all the jobs that have been created and are registered with Windows Task Scheduler Service which is responsible for job's execution.
Jobs can be enabled and disabled with a single click by putting or removing the checkmark next to the job's name in the list.
Hierarchical Action Sequence with Conditional Processing
Action Sequence
With Action Sequence you can easily specify which actions to perform on the selected files, under what circumstances, and in which order.
- Drag & drop to add, copy, and move actions
- Easily duplicate (copy) actions with all their settings
- Mix text, binary, and other kinds of actions
- Toggle individual actions on and off
- View a summary of action's settings right in the list
- Perform certain actions only when specified requirements are satisfied using conditions
- See condition relationships visually in a tree
- Save action sequence to XML-based template file
- Open / append previously saved action sequence
- Save action sequence summary to text file
- Get instant feedback about any errors
- See selected action details in tooltips
- Actions are numbered and color-coded to help you identify their order and distinguish different types of actions
You tell the program how to process files by adding various actions to the Action Sequence, which represents a sequence of operations to be performed step by step. In the Action Sequence, actions can be easily rearranged, moved around, duplicated using simple drag and drop operations and / or keyboard commands.
Conditions and Processing Paths
Conditional processing is possible with conditions, which are simply special actions that make sure that the actions that follow them should only be performed if particular requirements are satisfied: file name and file size match specified parameters, or a file contains certain text, etc. This results in potentially different processing paths for different files.
Actions and conditions are visually presented in the action sequence using numbered hierarchical tree-like list and arrows, making it easy to design and see processing logic and understand various relationships between the actions and conditions.
There is no limit to how many actions or conditions can be added to the action sequence, nor are there any restrictions as to how the actions should be ordered. Do whatever you need to accomplish your goals!
XML Templates
The action sequence that you design, including all the actions, conditions, levels of hierarchy, and individual action's settings can be easily saved to a file as XML-based template that you can reuse later. Because templates are XML-based, you can actually use any text editor or specialized XML tools to edit these templates afterwards. In addition, template files can be used for processing using command line and in Triggered / Scheduled Mode.
Processing Flow Branching and Conditional Processing with Conditions
Conditional processing allows you to perform different actions and operations on different files. This is accomplished using Conditions in the actions sequence, which alter the processing flow, so that different files may be processed using different processing paths!
Any actions that follow a condition in the action sequence will be performed only if the check(s) defined by the condition have been passed by the file being processed. Any actions nested inside a condition whose check(s) have not been passed by the files will not be performed on those files.
If another condition is encountered later, it may add to the effects of previously defined condition(s), so that any subsequent actions will be performed, provided the file being processed passes the new condition's check(s) as well.
- 8 Built-in conditions that can check file properties and content
- Conditions can be nested, which is equivalent to grouping conditions together using AND logical operator
- Conditions can be grouped together using either AND, OR (inclusive OR), or XOR (exclusive OR) logical operators
- Both the individual condition's check result as well as the check result of the whole condition group can be negated (logical NOT), which is useful when you want to apply certain actions to all files except those matched by the condition(s)
- Nested conditions can have actions and/or layers between them to allow for complex hierarchical processing scenarios
- Condition relationships with each other as well as hierarchy of actions they control is clearly reflected in an action sequence with arrows and alignment, so you know which actions and layers are controlled by which condition(s)
File Information Condition
Check if the file being processed matches specified file properties such as name pattern, location, size, and attributes.
The following checks can be performed by this condition:
- File name and extension match a predefined pattern (either wildcards or RegEx)
- File's parent directory matches a predefined pattern (either wildcards or RegEx)
- File's full path matches a predefined pattern (RegEx only)
- File's size is within specified range: at least N bytes, at most N bytes, exactly N bytes, between N and M bytes, not equal to N bytes
- File's creation, change, and access dates are within specified range
- File's attributes match supplied values
Content Size Condition
Check if the size of the file's contents match the specified value or range.
If it is a binary file, this is equivalent to checking file size. If the file contains text in certain encoding, you can check how many lines and/or characters a file contains, which is most often not the same as checking the size of the file in bytes (only if file is in ASCII the number of characters will equal the size of the file in bytes).
- Select how the size of file's content is calculated: by bytes (kilobytes, megabytes, gigabytes), by characters, or by lines
- Check that file's content size is within specified range: at least N bytes/chars/lines, at most N bytes/chars/lines, exactly N bytes/chars/lines, between N and M bytes/chars/lines, not equal to N bytes/chars/lines
Text Content Condition
Check if the file contains or does not contain specified text.
- 6 types of checks: contains, does not contain, start with, does not start with, ends with, does not end with
- Flexible contains check: contains at least N times, contains at most N times, contains exactly N times, contains between N and M times, contains but not N times.
- Support for wildcard character matching with *
- Case-insensitive search with Ignore Case option
- Restrict search range to either specified character or line range, like "search only within last 50 lines"
- Support for RegEx-style character escapes: \x9E, \080, \u12AB
RegEx Content Condition
Check if the file contains or does not contain specified text pattern using Regular Expressions. This condition is similar to Text Content Condition, except that for searching and matching more powerful Regular Expressions are used.
- 6 types of checks: contains, does not contain, start with, does not start with, ends with, does not end with
- Flexible contains check: contains at least N times, contains at most N times, contains exactly N times, contains between N and M times, contains but not N times.
- Built-in Regular Expressions editor with color syntax highlighting, contextual tooltips, and drag & drop
- RegEx toolbar that makes it easy to insert various RegEx elements and predefined patterns
- All major RegEx options supported: Multiline (m), Single line (s), Ignore case (i), Ignore pattern whitespace (x), explicit capture (n), ECMA Script, Right to Left, Culture-Invariant.
- Restrict search range to either specified character or line range, like "search only within last 50 lines"
Binary / Byte Content Condition
Check if the file contains or does not contain specified byte pattern.
- 6 types of checks: contains, does not contain, start with, does not start with, ends with, does not end with
- Flexible contains check: contains at least N times, contains at most N times, contains exactly N times, contains between N and M times, contains but not N times.
- Built-in hex editor to allow for easy byte entry
- Supports wildcard byte matching, where specified byte will stand for any byte
- Restrict search range by specifying the byte range, like "search only within first 50 000 bytes"
- Built-in converter tool to convert between decimal, hexadecimal and binary numbers or byte representations
Multiple Text Content Condition
Check if the file contains or does not contain specified number of items from the list, or if it starts/ends with or does not start/end with any of them. This condition is useful if you want to make sure a file contains certain minimum number of specific text patterns.
- 6 types of checks: contains, does not contain, start with, does not start with, ends with, does not end with
- Flexible contains check: contains all items, contains at least N items, contains at most N items, contains exactly N items, contains between N and M items, contains but not N items, does not contain any items.
- Support for wildcard character matching with *
- Case-insensitive search with Ignore Case option
- Support for RegEx-style character escapes: \x9E, \080, \u12AB
- List of items can be saved for future use to a text file
- Text items can be imported from a text file or pasted from clipboard
Note that this condition does not let you specify precise counts for individual items.
Multiple RegEx Content Condition
Check if the file contains or does not contain specified number of text strings matched by the corresponding RegEx search patterns from the list, or if it starts/ends with or does not start/end with any of them. This condition is useful if you want to make sure a file contains certain minimum number of specific text patterns.
- 6 types of checks: contains, does not contain, start with, does not start with, ends with, does not end with
- Flexible contains check: contains all items, contains at least N items, contains at most N items, contains exactly N items, contains between N and M items, contains but not N items, does not contain any items.
- RegEx search patterns are entered in a grid that supports syntax highlighting
- All major RegEx options supported: Multiline (m), Single line (s), Ignore case (i), Ignore pattern whitespace (x), explicit capture (n), ECMA Script, Right to Left, Culture-Invariant.
- List of RegEx search patterns can be saved for future use to a text file
- RegEx search patterns can be imported from a text file or pasted from clipboard
Condition Behavior Settings
Every condition has these common behavior settings that determine how it interacts with other conditions and thus how it affects file processing flow.
- Condition may allow further processing either if the requirements / check specified by it are met or not met (i.e. if the result of checking the file against a constraint is either True or False).
- Condition group behavior determines whether the conditions add to each other (i.e. each condition in a group adds additional requirements — equivalent to logical AND, or if the processing should continue as long as at least one condition in a group will pass — equivalent to logical OR.
- In addition it is possible to compare conditions inside a group using logical XOR operator, and negate the entire condition check.
- Negation of a condition or a condition group result may be very useful, because some times it is easier to define the checks for the True case and not for the negated case.
Full RegEx Support
Excellent RegEx Support
The program features excellent support for Regular Expressions in file processing tasks:
- 4 RegEx Actions: RegEx Replace, Multiple RegEx Replace, RegEx Extract, and RegEx Format
- 2 RegEx Conditions: RegEx Content and Multiple RegEx Content
- Replace supports RegEx substitutions and named or numbered groups
- 6 Built-in RegEx tools to help you design RegEx patterns: number selector, tag selector, line selector, etc.
- Complete syntax highlighting for all RegEx patterns
- Optional dynamic syntax tips for RegEx elements
- RegEx support in auxiliary operations: file searching, file renaming, etc.
- Various RegEx options: ignore case, multiline, single line, etc.
RegEx Syntax Highlighting
Program features native support for Regular Expression syntax highlighting and contextual tips. Although this feature is entirely optional and may be easily turned off, it offers important visual cues and quick help should the need arise, and is ideal for someone who is just starting with Regular Expressions.
RegEx Lines Selector Tool
Regular Expressions Lines Selector will generate a valid RegEx pattern that will match specified lines of text given certain constraints such as: line range and line contents.
You can, for example, specify that only the lines that contain, or start with, or perhaps do not end with specific content should be selected, and only if they fall within a given range (i.e like last 100 lines).
RegEx XML/HTML Tag Selector Tool
Regular Expressions XML/HTML Tag Selector will generate a valid RegEx pattern that will match the specified or general XML or HTML tag.
You can restrict which tags should be matched by specifying required attributes, attribute values, or require that no attribute(s) of specified kind should be present.
Any combination of the starting tag, ending tag, and the content can be selected.
RegEx Options Dialog
All RegEx operations in the program can use any combination of the following options:
- Culture-Invariant - cultural differences in language is ignored
- ECMA-Script - enables ECMAScript-compliant behavior for the pattern
- Explicit Capture
n
- only valid captures are explicitly named - Ignore Case (A=a)
i
- performs case-insensitive matching - Ignore Pattern Whitespace
x
- eliminates unescaped white space from the pattern and enables comments marked with#
- Multi-line
m
-^
and$
match at the beginning and end, respectively, of any line, instead of just the beginning and end of the entire string - Right-to-Left - the search will be performed from right to left instead of from left to right
- Single Line
s
- the dot.
matches every character, instead of every character except\n
Batch Files offers extensive support for Regular Expressions throughout the program:
- 4 Regular Expressions Actions - RegEx Replace, Multiple RegEx Replace, RegEx Extract Text, RegEx Format Text
- 2 Regular Expressions Conditions - RegEx Content, and Multiple RegEx Content
- 6 Dedicated RegEx tools - Text Lines Selector, Text Selector, XML/HTML Tag Selector, Whole Number Selector, ASCII Character Map / Character Escape Selector, and RegEx Builder & Tester
- RegEx Syntax Highlighting - all RegEx input text fields feature automatic syntax color highlighting, bracket matching, and interactive tooltips that make it super easy to design regular expressions patterns
- RegEx Builder & Tester - helps you design and test Regular Expression patterns. With it you can also perform RegEx search and replace operations that support RegEx substitutions (that allow you to swap to pieces of text for example). It can also highlight matches in the original text, so you can better understand the behavior of your RegEx patterns.
- RegEx-Based File Search - you can use Regular Expressions when searching for files whose names should match a specific pattern.
- RegEx-Based File Rename - you can perform RegEx-based search and replace operations on file names, giving you advanced control over file naming.
Saving Processed Files and Output Options
When it comes to saving the processed files, the program offers a great variety of options: it gives you full control over destination folder, file name pattern, file attributes, and output modes.
Output Folder Options
You have total control over where the processed files should be saved. Output folder (directory) can be:
- Original folder - processed file will be saved to the same folder where original file was read
- Existing folder - existing folder specified using absolute path
- Folder specified with Relative path - you can use relative paths to specify output directory: i.e.
..\Folder
orFolder
orFolder1\Folder2
.
If a destination folder does not exist, it will be automatically created during processing.
4 Output Modes
The program offers 4 basic output modes: Normal, Join, Split, and Zip.
- Normal Mode - every input file corresponds to a single out file
- Join Mode - multiple files are merged together
- Split Mode - every file is split using a specified separator, or targeting specific part size, or targeting specific number of parts
- Zip Mode - processed files are put together into root directory of a single zip file
Joining and splitting can be done at either binary level by bytes or at the text level by either characters or lines.
Joining / Merging Files Together
When joining by bytes, the files are aligned so that the last byte of the first file comes right before the first byte of the second file. For character and line modes this works the same way, except the alignment occurs at the last/first character and the last/first line respectively.
Splitting Files
For splitting you have 3 options:
- Split using separator - choose the type of a separator (text or binary) and enter the separator in the provided space. If binary separator is used, it is entered in hexadecimal format.
- Split into parts of a given size - specify the size of the file part in terms of bytes, lines, or characters. The number of file parts may be different for every file processed.
- Split into N parts - specify into how many parts you want every processed file to be split. Every file will be split into the same number of parts, but the parts belonging to different files may have different sizes.
Zipping Files
In Zip mode files are put together into root directory of a single zip file and optionally compressed. This mode is similar to Join mode, in that in the end only one output file is produced, - in this case it is the zip archive containing processed files. All the files inside the archive are named according to the file name pattern that you specify.
Set File Attributes and Dates
As part of the processing you have the ability to set (if saving as new files) or modify/update (if original files should be altered) file's attributes and dates (creation, modification, and even access).
Running Third-Party Programs as Post-Processing Step
You can specify to run a third-party program after processing each file, or after processing all files, providing output file path(s) as the argument. This is useful if you want to do additional processing on the files that at present cannot be achieved with this program.
Other Options
You can specify additional things that include: backup policy, whether original files should be deleted, should processing stop on errors, etc.
Processed Files Naming Options
Rename Files
You can give processed files any name you desire with the powerful built-in file name designer tool. It features simple drag & drop user interface that lets you select various tokens from a list of almost 100 and use these tokens as part of the generated file name.
The tokens may represent either dynamically generated content that can be included as part of the file name, or a command that somehow modifies the part of the filename that has already been generated (like changing letter case, or performing replacement operation).
Use Tags to Generate Dynamic File Names
There are close to 100 different tokens that can be used to generate dynamic file names that meet your requirements. Simply include the token in the appropriate place in the file name pattern to have dynamically generated content inserted in the right place (if the token generates content), or to affect the generated filename in other ways (if the token represents a command or operation).
The following tokens are available:
- File creation and modification dates, file size
- EXIF, ID3, and other mete-tags
- Current date and time
- Random numbers and letters
- File hashes: MD5, SHA1, SHA2, CRC…
- Original file name, extension, folder name
- Search & Replace operation letting you replace text within file name
- RegEx Replace - replace within file names using Regular Expressions
- Letter case modification commands (make upper case, lower case)
Use EXIF and ID3 tags in File Names
If the processed file is an image containing EXIF mete data or an MP3 file with ID3 meta data, you can use this meta data in the file name pattern. For example to include camera maker name and model number in the names of the processed image files include <EXIF|Make>
and <EXIF|Model>
in desired places in the file name pattern, and the program will automatically extract this meta data from the image and include it in the generated file name.
When it comes to saving processed files, the program really shines, as it comes with built-in professional file renamer tool that lets you easily design file naming pattern simply by drag-dropping different name parts (tags) onto the text area. And there are many tags to choose from: various hashes and checksums like MD5, SHA, SHA2, CRC16, CRC32, etc; file size; parts of original name/folder; creation and modification dates and their parts; random characters; EXIF and ID3 met tags; etc. You can even perform search and replace operations on the file name patterns you design!
Moreover the program can act solely as bulk file name renamer utility: you do not have to add any actions to the action sequence, and choose to only rename files instead!
Select Files for Processing with Deep File Search
Recursive File Search
One of the ways you can add files to the file list for processing is by doing a search for all files that match criteria you specify. The program will scan selected directories and subdirectories for any valid files and automatically add them to the list.
- Recursive scanning with customizable depth
- Specify files to include and exclude using highly customizable patterns and masks - much more powerful than your basic wildcards but easier to use than Regular Expressions!
- Specify directories to exclude from search
- Use Regular Expressions to specify file name patterns
- Use case sensitive matching
Note that you can save your customized file searches as templates for future use.
Search for Files Based on Properties
You can find files you need for processing based on file properties like size or creation date, and attributes. This is in addition to basic search by name!
What's more is that you can fine tune these and select the exact ranges for all properties, like setting the size to be between 1MB
and 5MB
for example. With dates, too, you can be as specific as you want: you may, for example, look for files created on any day in May 2020
, or on May 10 2020
specifically.
Search in Files for Text Content
You can search for and add files for processing using not just their names and properties, but actual contents as well. Perhaps you need to process only files that start with a particular text; or only those files that contain a particular phrase specified number of times. The program is very flexible!
Search for files based on text content using these conditions:
- Contains at least N times
- Contains at most N times
- Contains exactly N times
- Contains between N and M times
- Does not Contain N times
- Does not Contain
- Starts with / Does Not Start with
- Ends with / Does Not End with
Ignore case option and wildcards are fully supported for more advanced searches!
Search in Files for Bytes & Binary Content
You can search for and add files for processing using their binary content. Perhaps you need to process only files that start with a particular sequence of bytes; or only those files that contain a particular byte sequence no more than specified number of times. The program is very flexible!
Search for files based on binary content using these conditions:
- Contains at least N times
- Contains at most N times
- Contains exactly N times
- Contains between N and M times
- Does not Contain N times
- Does not Contain
- Starts with / Does Not Start with
- Ends with / Does Not End with
Wildcards are fully supported for more advanced searches!
In all of the processing modes, files for processing can be selected using recursive (deep) file search, where the program automatically scans specified directories for files matching desired criteria, such as: file name pattern, extension, size, dates, content etc. This has several advantages:
- Program automatically searches for desired files - no need to pick files manually
- Not just file name and attributes, but also their content in both text and binary form can be examined
- Complex searches can be saved and reused later
For finding files with file names matching a specific pattern, you can either use extended wildcards with support for positive and negative matches, sub-masks, character ranges, grouping and alternation patterns; or use even more powerful Regular Expressions.
Advanced Wildcards
You can easily add files for processing matching a specific file name pattern and having certain extension(s) with advanced wildcards! Of course, you could use regular Operating System file search, but it is very weak and supports only basic wildcards. On the other hand, Regular Expressions may be too complicated for a trivial task like selecting files matching a give name pattern.
Advanced wildcards, one of Batch Files's many unique features, is what you would want to use!
Regular OS Wildcards | Advanced Wildcards | Regular Expressions |
---|---|---|
Files beginning with lowercase letters a through m and having jpg , bmp , or png extensions: | ||
a*.jpg;a*.bmp;a*.png;b*.jpg; … |
<a-m>*.(jpg|bmp|png) |
[a-m].*\.(jpg|bmp|png) |
Files beginning with file which is not followed by an underscore character _ : | ||
- | file(!_)*.* |
file(?!_).*\..* |
Files beginning with start and not containing skip between start and end : | ||
- | start*(!skip)*end*.* |
start(?(.*(skip))|.*)end.*\..* |
Files not beginning with page , whose name part ends with a digit, and not having either bmp or jpg extensions: | ||
- | (!page)*#.*(!bmp|jpg) |
(?<!page).*\d\..*(?!(bmp|jpg)) |
Triggered / Scheduled Processing Jobs
It is possible to create scheduled or triggered processing jobs that will be automatically performed even if the program is not running. And there is no limit to how many such jobs can be created!
For every job you can specify the files to be processed, actions to be performed, output settings, and other processing options.
When the processing job is triggered, depending on the job's setting the program will be automatically launched in either GUI, console, or hidden mode, and the processing will be automatically started. When done, the program will exit automatically.
There are numerous triggers available: daily, weekly, monthly, event-based, etc.
Setup a Processing Job - General Properties
Processing jobs allow you to setup various batch file processing tasks that will be executed on a specified trigger or on schedule.
General properties include: name of the job, general timeframe when the job can be active, operation mode that determines if any UI will be shown, and user account together with security context under which the job will be executed.
Setup a Processing Job - Select Files
There are several ways in which you can specify which files should be processed by a processing job:
- Specified directories will be scanned for files matching a given name pattern
- Specified file search template will be used (see Recursive File Search)
- Specified list of files containing files' full paths will be used.
Setup a Processing Job - Specify Actions
Once you have specified which files should be processed by a processing job, the next step is to specify how these files should be processed, which actions and operations should be performed. This is done by specifying a previously saved Action Sequence.
Additionally you can customize a few other processing aspects like the number of processing threads and logging options.
Setup a Processing Job - Output Settings
Output settings determine where and how the processed files are saved. All the options that are available in Step 3 in Manual and Automatic processing modes can be customized here as well. These include:
- File naming pattern and destination / output folder
- Output mode: normal, join, split, or zip
- Ability to define a third-party tool to execute after processing has finished
- Backup- and file saving- related options
Setup a Processing Job - Triggers - Monthly
Last step in setting up a processing job is to define a trigger or specify a schedule that will determine when the processing job will actually execute.
Monthly trigger lets you specify that a job should be executed on a monthly basis. You can select specific days of the month or weeks when the job should be run, as well as specify which months should be included and which ones should be excluded.
Setup a Processing Job - Triggers - Weekly
Last step in setting up a processing job is to define a trigger or specify a schedule that will determine when the processing job will actually execute.
Weekly trigger lets you specify that a job should be executed on a weekly basis. You can select specific days of the week when the job should be run.
Setup a Processing Job - Triggers - Daily
Last step in setting up a processing job is to define a trigger or specify a schedule that will determine when the processing job will actually execute.
Daily trigger lets you specify that a job should be executed on a daily basis. You can specify the daily recurrence pattern as well.
Setup a Processing Job - Triggers - Event
Last step in setting up a processing job is to define a trigger or specify a schedule that will determine when the processing job will actually execute.
Event-based triggers lets you specify that a job should be executed when a particular application or system event occurs. This feature is available only on Windows Vista or higher. Any events that you see in the Windows Event Viewer are supported, and a processing job will be automatically started by Windows Task Scheduler Service when the associated event occurs.
Setup a Processing Job - Command Line Preview
A processing job is automatically executed by the means of Windows Task Scheduler Service launching the program on appropriate trigger / schedule and with job-specific command line arguments.
The Command Line Preview tab shows you the exact command line that will be run in order to start the processing job. That way you can launch the program manually with appropriate parameters and have the same processing job be manually started.
Common Tasks
The program gives you full control when designing the sequence of actions; yet at the same time if you are just starting or want to perform some basic task quickly, the program offers numerous common tasks organized into categories that you can simply click on and see the needed actions be automatically added to the action sequence for you, so you can get started in no time!
Note that with the built-in actions and operations you can do much more than what you can do with common tasks described above! Common tasks by no means represent all of product's functionality, but rather facilitate product's use when it comes to dealing with frequently occurring tasks.
Common Tasks - Working with Lines
One of the most frequent tasks when processing text-based files is working with lines in one way or another. The program offers multiple common operations relating to lines:
- Sort and shuffle lines
- Delete specific lines, remove blank / empty lines
- Insert new lines
- Append or insert text, prefix lines
- Remove text from the ends of lines
- Trim and format lines
- Move and copy lines
Common Tasks - Copy Content
There are several built-in common tasks for copying or moving parts of the file to another position. You can duplicate lines; you can copy lines from the start or end of the file to another position, or relative to their current location; you can copy blocks of bytes to another position; and more!
Common Tasks - Convert & Encode
Program also offers various encoding and conversion -related common tasks that help you change text file encoding, convert text to binary and vice versa, convert HTML to plain text, etc.
- Convert files between different encodings and code pages: UTF-8, UTF-7, UTF-16, ASCII, Cyrillic, etc.
- Convert files containing binary data in hex form to actual binary representation and vice versa
- Convert to and from Base-64 and Quoted-Printable encodings
- Convert HTML to plain text
- Convert Morse code to plain text and vice versa
Common Tasks - Working with Files
Not only can you modify file's contents with common tasks, but it's very easy to perform various file system -related operations as well:
- Find files using content-based recursive search
- Move and copy files
- Rename files
- Delete files
- Split and join files
- Encrypt and decrypt files
- Generate file hashes
- Modify file attributes
Full Command Line Support & Console Operation
Batch Files has full support for command line operation. It can not only be started from command line with specific options, but it can also run and operate entirely in console window.
A typical usage scenario would be to first specify a sequence of actions to be performed and then save that sequence to a template file. Then you can easily process files entirely from command line using a few switches: input directory and input file pattern, path to a saved action sequence template file, and output directory with file naming pattern.
Some benefits of command-line processing include:
- Ability to launch program and perform file processing on demand or by invoking it from third-party tools
- Perform processing a bit more efficiently without consuming a few extra resources needed to display and update Graphical User Interface
- Manually schedule the program to run with specific parameters using third-party scheduling programs or other automation software
- Execute batch processing tasks directly from Windows Power Shell
- Execution from a batch file with different parameters each time
- Simultaneous execution of several instances
- Faster startup and configuration as predefined command line snippets can be used, and in general typing is faster than manipulating UI elements
Highly Customizable with Options
The program can be easily customized to your preferences, thanks to the many options that it has. Various options include:
- Auto-load and auto-save options that control which items the program will automatically save upon exit
- Syntax highlighting, colorization, and interactive tooltips in textual fields
- Tooltips preferences that control how and when the tooltips will be displayed
- Font options that let you choose the default type and size of the monospace font the program uses in text fields
- Various other User Interface related settings including theme kind, color-coding, etc.
- Different processing options like the number of threads, queue size, maximum text file size for Regular Expressions, etc.
Integrated Help with Informative Tooltips
With Batch Files we have re-imagined the concept of in-place help for a software product with the goal for it to be readily-accessible, well integrated, useful, and detailed. No more clumsy external huge help files that would take hours to make sense of and relate to the program!
Instead, virtually all elements of the User Interface have very detailed, in some cases multi-paged, informative tooltips that not only explain what a particular button, checkbox, or option does, but also provide valuable insights and helpful tips letting you know how to take advantage of a particular feature.
Multi-paged tooltips can be easily viewed simply by scrolling with your mouse wheel. Certain contextual tooltips can also be moved around and pinned to stay on top of other windows. This may be invaluable if you need to keep certain information in the view while working on something else.
Very Detailed Tooltips
Batch Files features very detailed and helpful tooltips that are available for virtually all user interface elements. If the text is too long, it is broken up into several pages that you can easily scroll through with your mouse wheel. No need to view external documentation, the help is completely integrated with the product!
Movable Tooltips
Some tooltips can be moved around and pinned so they stay visible on top of other windows until closed. This is useful when a tooltip displays certain technical information that may be needed to configure certain settings, and should therefore remain visible even when the mouse is no longer hovering over its parent element!
File Tooltips
There are very detailed tooltips for files in the file list! Such tooltips display not only basic file information like file name, location, size, and attributes, but also show first few dozens of bytes that make up file content! These tooltips also inform you of what actions are possible with the file selected.
Action Tooltips
Action tooltips display detailed information about the actions in the action sequence. When you move your mouse over an action in an action sequence, a tooltip will be displayed, explaining what the action does, what are the current action options, and what things you can do with a given action.
Action tooltips can be pinned so they stay of top and not auto-close, so that as you make changes to action's options, these changes will be automatically reflected in the action options summary displayed on the pinned tooltip.
Smart Contextual Tooltips
Although optional and can be turned off, the program also offers contextual tooltips that will appear when you move your mouse over distinct parts of text in certain text fields that support syntax highlighting.
Such tooltips are featured for all text fields that accept Regular Expression patterns as input; fields that allow character escapes; and in the file name pattern designer.
This is very useful, as simply by hovering your mouse over different areas in the text fields, you will instantly know what a particular RegEx element or file name token does.
Optional Integration with Windows Explorer
Upon installation of the software, you have the option to install a Windows Shell extension that integrates a Batch Process context menu into Windows Explorer, making it super easy to simply right-click on a group of files or a folder and launch the program with the selected files and chosen operation already setup, so you can process the files right-away - directly from Windows!
Process Files from Windows Explorer
If you install optional Windows integration component, you will be able to launch Batch Files directly from Windows explorer by selecting the files or a folder containing files that you wish to process, right-clicking on the selection, and choosing Batch Process Files menu.
Program Starts in Compact Mode
When you launch program from Windows Explorer, it starts in a very compact mode with the files you selected in Windows Explorer already automatically added and ready for processing. This is done for your convenience so you can process file right away!
By default, if the program is started from Windows Explorer, it will automatically quit once the processing has been completed. However there is an option to change this behavior if you want.
Compact Mode UI
When the program is started in compact mode, it shows only the primary action you selected in the Windows Explorer's right-click context menu when you launched the program, and additionally crucial output settings that include file naming pattern and destination to save processed files.
If this is not enough for your needs and you need to make some changes and add more actions or files, or adjust other settings, you can always enter Full View by simply maximizing the window. There is also an option for the program to always start in Full View if you want.
Advanced Logging
When processing thousands of files using complex action sequences with multiple conditions and actions, certain things might go wrong occasionally; and that's where program's excellent troubleshooting abilities come in very handy.
Program's advanced logging capabilities make it super easy to diagnose problems and get rid of any processing warnings or errors. A very detailed log is automatically generated by the program for every processed file that contains details about which actions have been performed, when, with what options, and with what results. All this information is made available to you in a nicely formatted view once the processing has been completed.
The processing log can be manually saved to a file after processing and / or automatically generated as a text log file in the destination folder(s).
File Operations Helpers
File Operation Helpers make it easy to perform certain file-related tasks that do not directly correspond to the built-in actions. File Operation Helpers automatically setup the proper output settings depending on the operation you choose to perform.
File Operation Helpers are available for the following operations:
- Copy and Move files
- Rename files
- Delete files
- Set or Change file attributes
- Split files
- Join / Merge files
- Generate hashes of files' contents
- Encrypt / decrypt files
Alternative User Interface Theme
Program also offers alternative User Interface skin for cases when Aero rendering is not available, or if you prefer glass-less look instead.
Other Features
Some other notable features that are not represented in the screenshots above:
- Virtually all actions allow you to customize the range of their operation, so that you can restrict a particular action to operate only on a specified part of the file (as if the file itself was smaller).
- Built-in base-converter tool that lets you convert numbers and byte sequences between binary, decimal, and hexadecimal forms.
- Multi-colored smart rendering of file paths in file lists that highlights most important parts of the file path, so that you can see file name, its parent directory as well as the drive - all at a glance.
- Program automatically remembers the values you enter into drop-down lists so that next time you need them, they can be selected from a drop-down! It also remembers the file paths you specify for files and folders, so that if you ever reopen the same Select Folder or Choose Files dialog again, it will automatically be opened where you left it last time.
Customization & Extensibility
Although by itself Batch Files is a professional product, it cannot possibly offer every feature you may want, or be used in all possible scenarios. This is not a problem however, because this product was built with extensibility in mind from the ground up.
The functionality offered by Batch Files can be extended in the following ways:
- Software Development Kit (SDK) will let you develop your own actions and conditions that can be directly used by the product just as built-in ones. All that is required is basic knowledge of either C#, F#, or VB.NET and Microsoft .NET Framework 3.5 / .NET Core 3.1 or higher.
- Actions Library will let you use all the various processing actions together with their UI in your own projects. Library is provided as a COM-Compatible .NET DLL that you can use in your own projects to leverage the functionality offered by the various processing actions.
- Custom Development - should you need it, we can customize the product for you so it specifically meets your needs. Batch Files provides a solid foundation for batch file processing upon which our experienced developers can quickly create a customized, professional solution that meets your needs.
Software Development Kit (SDK)
You can easily extend functionality offered by Batch Files' built-in actions by designing your own using this SDK as a guide. Batch Files provides all the basic actions that perform general tasks, such as resize, crop, watermark, etc.; however you may have a need to process images in a specific way, and hence require custom actions.
With this SDK and basic VB.NET or C# programming skills you will be able to create your own custom actions that you can then use from within the program to effectively accomplish your goals. We recommend you use Microsoft's free Visual Studio Community to develop your extensions using this SDK, but of course if you have Visual Studio, SharpDevelop IDE, or any other IDE capable of producing .NET 3.5 libraries, you can use it as well.
Actions Library
Actions Library is provided as a COM-Compatible .NET DLL that you can use in your own projects to leverage the functionality offered by the product's various processing actions. Whereas with SDK you extend the product with the actions you create, with Actions Library you extend your own solution by utilizing the functionality of the product.
For example, if you want to use file processing capabilities offered by Batch Files, with the Actions Library you will be able to do just that.
Actions Library needs to be acquired separately from the main product. So, please contact us to get Actions Library. We will also be happy to answer any questions you may have regarding licensing, pricing, integration, and other issues.
Let Us Customize Batch Files for You!
If Batch Files is not exactly what you are looking for, we can customize it for you so it specifically meets your needs! It can be done at a low cost to you, as Batch Files provides a solid foundation upon which new features can be effectively added by our experienced developers to quickly create a customized, professional solution that meet your needs!
Keep in mind that contracting us to customize the product will be much cheaper and faster than hiring a programmer or doing the work with your own resources, as we have extensive experience in the area of custom development, and what's more - Batch Files is a solid foundation upon which all the extra functionality that you desire can be built. More than 10 000 man-hours and over 100 000 lines of code went into the creation of Batch Files, so recreating even part of its functionality from scratch would require lots of resources.
Do you need customization?
- The product does not exactly meet your needs?
- Some feature you would like to use is not in the product?
- Would you like to add another action or operation?
- Need more options and customizations?
- Want to integrate the product with your existing business logic?
Custom Development Benefits
- No programming skills are required - we do everything for you!
- Low-cost professional development by experienced team
- Fast development because it leverages existing product and infrastructure
- Professional User Interface and familiarity as new features are integrated into existing product
- Royalty-free, flexible licensing model
Look no further! Contact us to request a quote and start custom development!