Tcl Source Code

View Ticket
Login
Ticket UUID: 1546827
Title: exec fails on explicit quotes
Type: Bug Version: obsolete: 8.4.12
Submitter: suchenwi Created on: 2006-08-25 18:24:18
Subsystem: 27. Channel Types Assigned To: aku
Priority: 5 Medium Severity: Minor
Status: Closed Last Modified: 2013-11-12 12:36:32
Resolution: Wont Fix Closed By: dkf
    Closed on: 2013-11-12 12:36:32
Description:
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.
User Comments: dkf added on 2012-05-30 17:35:56:
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.

mpc_janssen added on 2006-09-22 16:38:38:
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

suchenwi added on 2006-08-28 14:51:39:
Logged In: YES 
user_id=1478027

Even simpler workaround (found on the Wiki):

exec cmd << "echo \"a,b\"\n"

dkf added on 2006-08-28 01:09:30:
Logged In: YES 
user_id=79902

suggested workaround: write a temporary batch file that
contains the awkward command invokation, and run that.

dgp added on 2006-08-27 10:46:39:
Logged In: YES 
user_id=80530


This only happens on Windows,
where apparently there's no
good interface to pass 
argument words separately.