X-Spam-Check-By: sourceware.org Date: Thu, 3 May 2007 12:01:35 -0400 (EDT) From: Igor Peshansky Reply-To: cygwin AT cygwin DOT com To: Daniel Spannbauer cc: cygwin AT cygwin DOT com Subject: Re: Some Batch-Scripting-Problems under Windows In-Reply-To: <4639FAA4.10800@marco.de> Message-ID: References: <4639D32B DOT 40607 AT marco DOT de> <4639FAA4 DOT 10800 AT marco DOT de> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: 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 On Thu, 3 May 2007, Daniel Spannbauer wrote: > Hello Igor, > first of all Thanks for the answer. > > Igor Peshansky wrote: > > On Thu, 3 May 2007, Daniel Spannbauer wrote: > > > >> Hello, > >> > >> we've build a Program for Cygwin to load some Firmware in some Hardware > >> which is produced by us. > >> The Firmwware is called file.tld. At the moment the USer has to open > >> Cygwin, jumpd to the Path of the file.tld (for example: C:\Dokumente und > >> Einstellungen\test\Eigene Dateien\tload) an run the program by "tload -l > >> /dev/ttyS0 file.tld". > >> > >> This is very uncomfortable. > >> Now I try to write a simple Batch-Script to do this automaticly, so you > >> have just to douible-klick on file.tld an the Firmware is loaded over > >> a predefined serial Line. > >> > >> The batch-Script looks as follows: > >> > >> LINE=/dev/ttyS0 > >> c:\Programme\cygwin\bin\bash -c "/bin/tload.exe -l %LINE% %1%" > >> > >> But this won't work couse "%1%" is still "C:\Dokumente und > >> Einstellungen\test\Eigene Dateien\tload\file.tld" which isn't a cygwin-Path. > > > > That's not even valid batch syntax. You want > > > > set LINE=/dev/ttyS0 > > c:\Programme\cygwin\bin\bash -c "/bin/tload.exe -l %LINE% %1" > > Thats clear, I simply don't wrote it. > > >> So I cahnged the script as follows: > >> > >> LINE=/dev/ttyS0 > >> c:\Programme\cygwin\bin\bash -c "/bin/tload.exe -l %LINE% '/bin/cygpath -a -i %1%' " > >> > >> But this also don't work. couse "%1% has Double-Quots (") at first and > >> last place. > >> > >> I think it is just a quoting-Problem. > >> Any Ideas out there? > > > > Yes. Use single quotes. For example, the below should work: > > > > set LINE=/dev/ttyS0 > > c:\cygwin\bin\bash -c '/bin/tload.exe -l %LINE% "`/bin/cygpath -a -i %1`"' > > > > (you need to quote the output of cygpath as well, as that may contain > > spaces). > > Ok, that works. But the Output of cygpath is "/cygdrive/c/Dokumente und > Einstellungen/test/Eigene Dateien/tload/file.tld". > Seems that our Program, tload.exe, has a Problemwith Blanks in the > File-Name :( Well, the above code runs /bin/tload, not your tload. FWIW, /bin/tload is a machine load visualizer from the procps package. If you didn't forget to put double quotes around the invocation of cygpath, your program should get the whole filename as one argument in argv. If even in that case your tload does not not like spaces in filenames, that's probably a bug in your code. Igor -- http://cs.nyu.edu/~pechtcha/ |\ _,,,---,,_ pechtcha AT cs DOT nyu DOT edu | igor AT watson DOT ibm DOT com ZZZzz /,`.-'`' -. ;-;;,_ Igor Peshansky, Ph.D. (name changed!) |,4- ) )-,_. ,\ ( `'-' old name: Igor Pechtchanski '---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow! Freedom is just another word for "nothing left to lose"... -- Janis Joplin -- 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/