I would think the best route would be to do normal environment variable expansion, like it is done in cmd shell. If you've used "%" and "^" in your filenames then you are used to the hassle doing so creates
C:\%FOO%
C:\^FOO^
C:\
cd ^FOO^ ---> More?
cd ^^FOO^^ ---> C:\^FOO^
SET FOO=FOOBAR
cd %FOO% --> The system cannot find the path specified.
Putting a Caret at any place within that string, will nullify its "value" as an environment variable (except at the beginning).
So cd %^FOO%
Or cd %F^OO%
etc, will put you into the actual %FOO% folder.
The only change this would make, is to requiring double carets when you want to use 1 (and should possibly be applied to both "command" and "parameters" to make everything _consistent_). I doubt that would be a problem for most - and should be easily understandable. Without overloading the %%, $$, //, or \\ characters more.
^ In command prompt means the next character is literal.
You need to use it for escaping > < | redirection in batch scripts, and to escape quotes for various ported linux tools, ie gawk, sed etc.
So when TC parses the string, it would ignore single carets, treat any single next char as literal and treat it as an automatic fail for attempting to expand environment variables.
Thus the following in parameters field: "
%ProgramFiles%\%^FOO%\%FOO%\"
TC would expand "%ProgramFiles%", it would not expand %^FOO%, and it would expand %FOO%
So the string would become C:\Program Files\%FOO%\FOOBAR
(given the environment variable for FOO=FOOBAR).
If you wanted to send a literal %ProgramFiles%, then
%^ProgramFiles%, unless the intention is to continue requiring double percents to send a single percent... which I would recomend against. It overloads the character which TC already uses for its own parameters.
If you want to send a literal % then, ^%