[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: RE: os.execute with filename and argument containing spaces
- From: Thijs Schreijer <thijs@...>
- Date: Mon, 23 Jun 2014 06:55:22 +0000
> -----Original Message-----
> From: lua-l-bounces@lists.lua.org [mailto:lua-l-bounces@lists.lua.org] On
> Behalf Of Michael Gerbracht
> Sent: maandag 23 juni 2014 8:19
> To: lua-l@lists.lua.org
> Subject: os.execute with filename and argument containing spaces
>
> I would like to use os.execute() to run an .exe file with a path as
> argument.
> I tried the following:
>
> path = [["C:\program files\lua\lua.exe" "C:\Users\name surname\test.lua"]]
> print(path)
> os.execute(path)
>
> I do get an error, that 'C:\Users\name' is not recogized as internal or
> external command.
>
There is some weird exception in the Windows command processor, in which case it removes the outer quotes. So only the inner quotes remain, and then it fails.
Try this:
path = [[type NUL && "C:\program files\lua\lua.exe" "C:\Users\name surname\test.lua"]]
Then it no longer starts with a double quote and it should work fine.
See `cmd.exe /?` for some help on the exception.
Thijs
> I know that you should put some quotes around the path if it contains
> spaces.
> And in my case both pathes used may contain spaces. If you put the content
> of
> path variable into a .bat file it works. I expected that os.execute(command)
> does the same as putting the command in a .bat file but there seems to be a
> difference.
>
> Do you have any idea how to get it working?
>
> P.S.: Please note that usually you need the excape sequence \\ for the \
> character in lua. When using [[]] brakets this seems not to be necessary,
> otherwise the print command would not show the desired output.
>
> Thank you very much!
> Michael Gerbracht
>