On 11/3/2021 7:49 PM, Pablo Rodriguez via ntg-context wrote:
Dear list,
I have the following sample:
\starttext \startluacode main_file = document.files[1]
if file.pathpart(main_file) == "" then main_filename = file.nameonly(main_file) main_filename_win = main_filename else main_filename = file.pathpart(main_file):gsub(io.fileseparator, "/") .. "/" .. file.nameonly(main_file) docx_file = main_filename .. "-file.docx" epub_file = main_filename .. "-file.epub" if os.name == "windows" then main_filename_win = file.pathpart(main_file) .. io.fileseparator .. file.nameonly(main_file) docx_file_win = main_filename_win .. "-file.docx" epub_file_win = main_filename_win .. "-file.epub" end end
if os.name=="windows" then context(docx_file_win) os.execute("copy " .. docx_file_win .. " aeae") else context(docx_file) end \stopluacode \stoptext
If I run it on Windows, context(docx_file_win) cannot deal with the backslash, so I get:
.document-file.docx
So it is impossible that os.execute may work with copy.
Running it with Linux, I get "./document-file.docx".
How can I get the io.fileseparator or escape the backslash in main_filename_win above? (there are helpers for splitting names and combining paths)
- use locals - wrap names in "" and use / : dir "c:/data" - just use file.copy (with forward slashes), is faster too so in the end there is no need to test for windows Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------