Win XP, 8.4.12
% exec echo {"a b"}
"a b\
% exec echo {"a,b"}
,b"
(the last also beeped, probably taking \a too
literally)
Background: we need to call
cacls \some\file /x /y "Authorized Users":f
and I could no way to do this with exec - the last
word seems always to go wrong.
Logged In: YES
user_id=80530
This only happens on Windows,
where apparently there's no
good interface to pass
argument words separately.
Logged In: YES
user_id=79902
suggested workaround: write a temporary batch file that
contains the awkward command invokation, and run that.
Logged In: YES
user_id=1478027
Even simpler workaround (found on the Wiki):
exec cmd << "echo \"a,b\"\n"
Logged In: YES
user_id=1463011
If it is possible to use additional extensions, TWAPI can be
used to achieve the desired effect.
package require twapi
::twapi::create_process {} -cmdline {cacls c:\test.txt /P
"Authorized Users":f} -showwindow hidden
Since this is tangled up in the mess of Windows' command line parsing (bottom line: each program can do its own whimsical thing, and too many do exactly that) I see no prospect of ever making this much better than what we have now. It's a horrible compromise.