I'm trying to pass through caret chars through batch.
Escaping them once would be easy, but I need to do it twice.
I have an executable that will back up tables based on a Regex expression (not my code).
I want to back up all tables with an exclusion list.
Using ^(?!tableName$).*
works for a single table.
Batch File 1 (called from command line)
SET ignoreTables=tableName
:: Call the backup script
CALL SecondBatch.bat %ignoreTables%
Batch File 2
:: Passthrough ignoreTables
Executable.exe --ignoreTablesPattern="^(?!%1$).*"
But I'd like to ignore multiple tables. In Regex this means using the | (pipe) character eg; tableOne|tableTwo
would require;
SET ignoreTables=tableOne^|tableTwo
Which is correct at the SET
but not when passed to the CALL
The correct output that works from the command line is;
Executable.exe --ignoreTablesPattern="^(?!tableOne|tableTwo$).*"
How can I get this result out of the batch file?