Some Batch-Scripting-Problems under Windows

Igor Peshansky
Thu May 3 14:32:00 GMT 2007

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"

> 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
      |\      _,,,---,,_ |
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:
Problem reports:

More information about the Cygwin mailing list