This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Some Batch-Scripting-Problems under Windows



Igor Peshansky wrote:
> 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
>   

Its not a bug, its a Feature :)
Linux also don't like Blanks in File-Names. So I think I have to put a
Backslash bevor the Blanks.
But how? With awk?

Regards

Daniel


-- 
Daniel Spannbauer                         Systembetreuung
marco Systemanalyse und Entwicklung GmbH  Tel   +49 8333 9233-27 Fax -11
Auf der Wies 8, D 87727 Babenhausen       Mobil +49 171 4033220
http://www.marco.de/                      Email ds@marco.de
Geschäftsführer Martin Reuter             HRB 68255 Amtsgericht München


--
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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]