How to? The mystery of the unusable file names (file!test!.ext)

Dec 10, 2014
65
1
For one reason or another, I'm creating files containing two ! like for example "file!test!.ext" ... but they're unusable with tcc, at least with the methods I've tried.

The problem is that simply using it as is ignores the !test! part, like
[c:\] echo file!test!.ext
file.ext


To do anything with it, I have to use setdos like
[c:\] setdos /x-3
[c:\] echo file!test!.ext
file!test!.ext


Obviously, this is no good when using variables like
[c:\] setdos /x-3
[c:\] set variable=file!test!.ext
[c:\] echo %variable
variable
[c:\]echo %@lines[%variable]
%@lines[%variable]
[c:\] setdos /x+3
[c:\] echo %variable
file.ext
[c:\]echo %@lines[%variable]
TCC: (Sys) The system cannot find the file specified.
"%@lines[file.ext]"

... note that the variable itself is set just fine, I can check with just typing "set variable"

My questions:
1. What is it with the two ! anyway that confuses the heck out of tcc?
2. How do I get tcc to handle these strange file names in a variable?

Thanks!