GNU bug report logs - #18745
24.3; MS Windows, `call-process-shell-command' fails on `shell-quote-argument'ed bat file with quoted args

Previous Next

Package: emacs;

Reported by: Noam Postavsky <npostavs <at> users.sourceforge.net>

Date: Thu, 16 Oct 2014 04:35:01 UTC

Severity: minor

Found in versions 25.0.50, 24.3

Done: Juanma Barranquero <lekktu <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Noam Postavsky <npostavs <at> users.sourceforge.net>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 18745 <at> debbugs.gnu.org
Subject: bug#18745: 24.3; MS Windows, `call-process-shell-command' fails on `shell-quote-argument'ed bat file with quoted args
Date: Thu, 16 Oct 2014 12:28:58 -0400
On Thu, Oct 16, 2014 at 2:50 AM, Eli Zaretskii <eliz <at> gnu.org> wrote:
> This is a Windows misfeature, not an Emacs bug: the CreateProcess
> primitive fails like that when passed a command that is a batch file.

So there is no way for Emacs to paper over the Windows ugliness?

> To work around, try using cmd.exe as the command, and the batch file
> with arguments as its arguments, with "/c" prepended.

Doesn't work :(  I tried

  (call-process-shell-command
   "cmd.exe" nil t t
   "/c" "\"c:/path with space/foo-bar.bat\"" "\"x y\"")

  (call-process-shell-command
   "cmd.exe" nil t t
   "/c \"c:/path with space/foo-bar.bat\" \"x y\"")

  (call-process-shell-command
   "cmd.exe" nil t t
   "/c" "c:/path with space/foo-bar.bat" "x y")

All of them give

  'c:/path' is not recognized as an internal or external command,
  operable program or batch file.




This bug report was last modified 9 years and 208 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.