Some Batch-Scripting-Problems under Windows

Igor Peshansky pechtcha@cs.nyu.edu
Thu May 3 16:17:00 GMT 2007


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@cs.nyu.edu | igor@watson.ibm.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/



More information about the Cygwin mailing list