lua-users home
lua-l archive

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

> -----Original Message-----
> From: [] On
> Behalf Of Michael Gerbracht
> Sent: maandag 23 juni 2014 8:19
> To:
> 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.


> 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