lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]



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