RE: Paths with embedded spaces

new topic     » goto parent     » topic index » view thread      » older message » newer message

Thanks for that Chris.

I tried this on my Windows NT 4.0 system (service pack 6a) here at work and 
the command quoting works fine.

However I'm sure I've had a problem when it hasn't worked though.  I think 
that the quoting facilities provided in a DOS shell might depend on whether 
you are runing "pure DOS" or whether you are running a "DOS box" from a 
Windows GUI like Win95, Win98, WinNT or Win2000.  Until I get to my test 
machine at home I'll not be able to prove that.  My guess is that pure DOS 
won't provide quoting but DOS running _within_ Windows does but right now 
thats just speculation on my part.

Here is the program I used to test the quoting with:

-- argtest.ex

include get.e

function main()
  sequence cmdline

  cmdline = command_line()

  for i = 1 to length(cmdline) do
    printf(1, "Arg %02d is [%s]\n", {i, cmdline[i]})
  end for

  return(wait_key())
end function

abort(main())

If anyone wants to try this on a pure DOS machine with:

  ex argtest.ex "is this one argument"

then I'd be interested in the results.

Regards,

FP.

>===== Original Message From Chris Bensler <bensler at telus.net> =====
>
>Actually, you CAN quote a filename on DOS/WIN!!
>but not the file name and parameters together, which wouldn't make much
>sense anyways..
>
>but that works for me.
>Thanks, yah helped an ya didn't even know it :)
>Solves your problem as well
>
>I did a test..
>ex "test.ex"    <-- works
>ex test.ex "this should be a sinlge parameter" <-- also works
>ex "test.ex" "this is a sinlge parameter" <-- sure thing
>ex test.ex "this is a single parameter which contains a \"" <-- no problem
>ex "test.ex this should be a sinlge parameter" <-- doesn't, file not found,
>which is entirely expected
>
>
>Rob, you might consider documenting that.. that's pretty useful to know.
>
>Chris
>
>
>
>----- Original Message -----
>From: <freeplay at mailandnews.com>
>To: "EUforum" <EUforum at topica.com>
>Sent: Thursday, August 16, 2001 2:15 AM
>Subject: RE: Paths with embedded spaces
>
>
>>
>> Hi Chris,
>>
>> The command_line() function for ex.exe and exw.exe just gives you command
>line
>> as typed at the command prompt.  Nothing more and nothing less.  If you
>have:
>>
>>   exw prog.exw file name with spaces.mp3
>>
>> you get the arguments:
>>
>>   file
>>   name
>>   with
>>   spaces.mp3
>>
>> You might try:
>>
>>   exw prog.exw "file name with spaces.mp3"
>>
>> but this gives you:
>>
>>   "file
>>   name
>>   with
>>   spaces.mp3"
>>
>> What you really want is a single argument of:
>>
>>   file name with spaces.mp3
>>
>> One way I can think of around this is to write a function, say
>> "quoted_command_line", which might be invoked like this:
>>
>>   sequence cmd_line
>>
>>   cmd_line = quoted_command_line(command_line())
>>
>> The function would concatenate all the command line arguments and then
>split
>> them up again but this time with some special processing for handling the
>> quote (") character.  You might want to build a way to have a quote (")
>> character allowed as part of an argument as in:
>>
>>   exw prog.exw quote\"character
>>
>> and also with:
>>
>>   exw prog.exw "this string has a quote \" in it"
>>
>> The Linux Euphoria doesn't have this problem because the UNIX shell does
>all
>> this for you before exu has even been called.  For example this is
>perfectly
>> ok in Linux:
>>
>>   exu prog.exu "this string has a quote \" in it"
>>
>> So a quoted_command_line type of function is one way to tackle this.  If
>you
>> write one then I for one would appreciate a copy smile
>>
>> Regards,
>>
>> FP.
>>
>> >===== Original Message From Chris Bensler <bensler at telus.net> =====
>> >
<snip>

>

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu