TextPipe Batch Processing | DataMystic Developer
TextPipe Batch Processing via Command Line
Process hundreds or thousands of text files from the Windows command line using TextPipe. These examples demonstrate wildcard patterns, output folder redirection, multi-filter pipelines, and automated scheduled execution with Windows Task Scheduler.
Basic Batch Processing
Run TextPipe from the command line to apply a saved filter list to one or more input files.
The /filter parameter specifies the transformation, /input the source
file(s), and /output the destination.
REM Basic TextPipe command-line invocation
REM Apply a filter to a single file
TextPipe.exe /filter:"C:\Filters\cleanup_csv.fll" /input:"C:\Data\raw_export.csv" /output:"C:\Data\cleaned_export.csv"
REM Process with silent mode (no GUI)
TextPipe.exe /filter:"C:\Filters\ebcdic_to_ascii.fll" /input:"C:\Data\mainframe_dump.dat" /output:"C:\Data\ascii_output.txt" /silent
REM Overwrite existing output files without prompting
TextPipe.exe /filter:"C:\Filters\normalize_dates.fll" /input:"C:\Data\transactions.csv" /output:"C:\Data\transactions_fixed.csv" /overwrite /silent
Wildcard Patterns
Use wildcard patterns to process multiple files matching a specific naming convention.
TextPipe supports standard Windows wildcards (* and ?) and can
recurse into subdirectories.
REM Process all CSV files in a folder
TextPipe.exe /filter:"C:\Filters\standardize_headers.fll" /input:"C:\Data\Imports\*.csv" /output:"C:\Data\Processed\" /silent /overwrite
REM Process files matching a date pattern (e.g., report_20250101.txt)
TextPipe.exe /filter:"C:\Filters\strip_control_chars.fll" /input:"C:\Data\Reports\report_2025????.txt" /output:"C:\Data\Clean\" /silent /overwrite
REM Recurse into subdirectories for all .log files
TextPipe.exe /filter:"C:\Filters\extract_errors.fll" /input:"C:\Logs\**\*.log" /output:"C:\Data\ErrorSummary\" /silent /overwrite /recurse
REM Process multiple file types in one pass
TextPipe.exe /filter:"C:\Filters\fix_line_endings.fll" /input:"C:\Source\*.csv" /input:"C:\Source\*.tsv" /input:"C:\Source\*.txt" /output:"C:\Source\Fixed\" /silent /overwrite
Output Folder Redirection
Redirect output to a different folder structure while preserving original filenames. This is essential for production pipelines where source files must remain untouched.
@echo off
REM Production batch processing script with folder redirection
REM Processes daily data feeds and archives originals
set FILTER_PATH=C:\Filters\daily_feed_cleanup.fll
set INPUT_DIR=C:\Data\Incoming
set OUTPUT_DIR=C:\Data\Processed
set ARCHIVE_DIR=C:\Data\Archive\%date:~-4,4%%date:~-7,2%%date:~-10,2%
REM Create output and archive directories if needed
if not exist "%OUTPUT_DIR%" mkdir "%OUTPUT_DIR%"
if not exist "%ARCHIVE_DIR%" mkdir "%ARCHIVE_DIR%"
REM Process all incoming CSV files
TextPipe.exe /filter:"%FILTER_PATH%" /input:"%INPUT_DIR%\*.csv" /output:"%OUTPUT_DIR%\" /silent /overwrite
REM Check exit code
if %ERRORLEVEL% NEQ 0 (
echo ERROR: TextPipe processing failed with code %ERRORLEVEL%
echo %date% %time% - FAILED - Exit code %ERRORLEVEL% >> C:\Logs\batch_processing.log
exit /b 1
)
REM Archive original files after successful processing
move "%INPUT_DIR%\*.csv" "%ARCHIVE_DIR%\"
echo %date% %time% - SUCCESS - Files processed and archived >> C:\Logs\batch_processing.log
Multi-Filter Pipeline
Chain multiple TextPipe filters in sequence to build a data transformation pipeline. Each stage processes the output of the previous stage.
@echo off
REM Multi-stage data transformation pipeline
REM Stage 1: Character encoding conversion (EBCDIC to ASCII)
REM Stage 2: Fixed-width to delimited conversion
REM Stage 3: Data validation and cleansing
set SOURCE=C:\Data\Mainframe\daily_extract.dat
set STAGE1_OUT=C:\Data\Pipeline\stage1_ascii.txt
set STAGE2_OUT=C:\Data\Pipeline\stage2_delimited.csv
set FINAL_OUT=C:\Data\Pipeline\final_clean.csv
echo [%time%] Starting pipeline...
REM Stage 1: EBCDIC to ASCII
TextPipe.exe /filter:"C:\Filters\ebcdic_to_ascii.fll" /input:"%SOURCE%" /output:"%STAGE1_OUT%" /silent /overwrite
if %ERRORLEVEL% NEQ 0 (echo Stage 1 FAILED & exit /b 1)
echo [%time%] Stage 1 complete: Encoding conversion
REM Stage 2: Fixed-width to CSV
TextPipe.exe /filter:"C:\Filters\fixed_to_csv.fll" /input:"%STAGE1_OUT%" /output:"%STAGE2_OUT%" /silent /overwrite
if %ERRORLEVEL% NEQ 0 (echo Stage 2 FAILED & exit /b 1)
echo [%time%] Stage 2 complete: Format conversion
REM Stage 3: Data cleansing
TextPipe.exe /filter:"C:\Filters\validate_and_clean.fll" /input:"%STAGE2_OUT%" /output:"%FINAL_OUT%" /silent /overwrite
if %ERRORLEVEL% NEQ 0 (echo Stage 3 FAILED & exit /b 1)
echo [%time%] Stage 3 complete: Validation and cleansing
REM Cleanup intermediate files
del "%STAGE1_OUT%" "%STAGE2_OUT%"
echo [%time%] Pipeline complete: %FINAL_OUT%
Scheduled Execution
Automate TextPipe batch processing by scheduling execution with Windows Task Scheduler. Configure daily, hourly, or event-triggered runs for unattended data processing.
Using schtasks.exe (Command Line)
REM Create a scheduled task to run TextPipe batch processing daily at 2:00 AM
schtasks /create /tn "DataMystic\TextPipe Daily Processing" /tr "\"C:\Scripts\textpipe_daily_batch.bat\"" /sc daily /st 02:00 /ru SYSTEM /rl HIGHEST
REM Run every 15 minutes during business hours (Mon-Fri, 8am-6pm)
schtasks /create /tn "DataMystic\TextPipe Feed Monitor" /tr "\"C:\Scripts\textpipe_feed_process.bat\"" /sc minute /mo 15 /st 08:00 /et 18:00 /d MON,TUE,WED,THU,FRI /ru SYSTEM
REM Trigger on a specific Windows Event (e.g., file drop via event log)
schtasks /create /tn "DataMystic\TextPipe Event Trigger" /tr "\"C:\Scripts\textpipe_on_event.bat\"" /sc onevent /ec Application /mo "*[System[EventID=1000]]" /ru SYSTEM /rl HIGHEST
REM View existing scheduled tasks
schtasks /query /tn "DataMystic\TextPipe Daily Processing" /v /fo LIST
REM Delete a scheduled task
schtasks /delete /tn "DataMystic\TextPipe Daily Processing" /f
Using PowerShell (Task Scheduler Cmdlets)
# Create a scheduled task for TextPipe batch processing using PowerShell
# Runs nightly at 2:00 AM with retry on failure
$action = New-ScheduledTaskAction `
-Execute "C:\Program Files\DataMystic\TextPipe\TextPipe.exe" `
-Argument '/filter:"C:\Filters\nightly_etl.fll" /input:"C:\Data\Incoming\*.csv" /output:"C:\Data\Processed\" /silent /overwrite' `
-WorkingDirectory "C:\Data"
$trigger = New-ScheduledTaskTrigger -Daily -At "02:00"
$settings = New-ScheduledTaskSettingsSet `
-StartWhenAvailable `
-RestartCount 3 `
-RestartInterval (New-TimeSpan -Minutes 5) `
-ExecutionTimeLimit (New-TimeSpan -Hours 2) `
-AllowStartIfOnBatteries `
-DontStopIfGoingOnBatteries
$principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -RunLevel Highest
Register-ScheduledTask `
-TaskName "DataMystic\TextPipe Nightly ETL" `
-Action $action `
-Trigger $trigger `
-Settings $settings `
-Principal $principal `
-Description "Nightly TextPipe batch processing of incoming CSV data feeds"
# Verify the task was created
Get-ScheduledTask -TaskName "TextPipe Nightly ETL" -TaskPath "\DataMystic\" | Format-List
Next Steps
- TextPipe COM API Reference — Full programmatic control for complex automation
- PowerShell Integration — COM-based scripting with error handling
- FileWatcher Automation — Event-driven processing on file arrival
- CI/CD Integration — Embed TextPipe in build pipelines