Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com To: cygwin AT cygwin DOT com From: Mark Bohlman Subject: Re: Problem executing a .bat script in a directory with spaces using bash Date: Fri, 03 Sep 2004 11:49:02 -0400 Lines: 57 Message-ID: References: <5c8adab704090207557a3a359a AT mail DOT gmail DOT com> <4137566C DOT 7070203 AT sbcglobal DOT net> <5c8adab704090210405ea696e4 AT mail DOT gmail DOT com> <413760BD DOT 2080504 AT sbcglobal DOT net> <5c8adab70409021123291886c7 AT mail DOT gmail DOT com> <41376CD2 DOT 9090102 AT comcast DOT net> <41376D75 DOT 1060806 AT comcast DOT net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: usenet AT sea DOT gmane DOT org X-Gmane-NNTP-Posting-Host: exchange.tcicredit.com User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.2) Gecko/20040803 In-Reply-To: X-Enigmail-Version: 0.85.0.0 X-Enigmail-Supports: pgp-inline, pgp-mime X-IsSubscribed: yes Igor Pechtchanski wrote: > On Fri, 3 Sep 2004, Mark Bohlman wrote: > > >>Igor Pechtchanski wrote: >> >>>On Fri, 3 Sep 2004, Christopher Cobb wrote: >>> >>> >>>>I get different results than you do. It seems to work as expected: >>>> >>>>chcobb AT CHCOBB-054009 /c/Documents and Settings 09:45:46 >>>>511$ cat test.bat >>>>echo %1 >>>> >>>>chcobb AT CHCOBB-054009 /c/Documents and Settings 09:45:48 >>>>511$ ./test.bat >>>> >>>>C:\Documents and Settings>echo >>>>ECHO is on. >>> >>>I believe you're missing the point. Try >>> >>>../test.bat "hello world" >>> >>>and you'll get the error. >>> >>>I've come across this when writing a pure Windows loader for another >>>program. The above is actually an idiosyncrasy of the way spawn() works >>>in Cygwin (and, incidentally, in Windows' own MSVCRT) -- it calls >>>CreateProcess, which expects all arguments combined into one command >>>string (which, in turn, is later parsed for separate arguments - yes, >>>retarded, I know). The fact is that, if any argument contains spaces, it >>>has to be quoted before CreateProcess() is invoked. Cygwin apparently >>>doesn't do this properly to the first argument, so the above breaks. See >>>spawn_guts() in winsup/cygwin/spawn.cc (warning: a 590!-line function). >>>. >>> Igor >> >>You get the same "odd evaluation behavior" when doing >>echo "Hello World" | ./test.bat >>(in any directory). >>-- Mark > > > Actually, I don't. Did you, by chance, mean "echo ...|xargs ./test.bat"? > Even so, you should probably be a bit more specific about the "odd > evaluation behavior" that you're observing. > Igor Hmmm. I'm seeing the same results as you show above with a quoted "Hello World" parameter to the ./test.bat. Then in doing the echo, without the xargs, results in the same "non-evaluation" (what i consider to be 'odd') for parameter %1 within the test.bat file. -- Mark -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/