Julia 朱莉娅在窗户上。如何将命令行选项传递给可执行文件

Julia 朱莉娅在窗户上。如何将命令行选项传递给可执行文件,julia,Julia,我希望通过Base调用Julia的一个可执行文件。运行并将命令行选项传递给该可执行文件,但我不知道如何执行。在我的具体示例中,可执行文件是 此示例代码有效,但不传递命令行选项: function open_file_in_notepadpp() exepath = "C:/Program Files (x86)/notepad++/notepad++.exe" #Default location on 64 bit Windows command_line_options

我希望通过
Base调用Julia的一个可执行文件。运行
并将命令行选项传递给该可执行文件,但我不知道如何执行。在我的具体示例中,可执行文件是

此示例代码有效,但不传递命令行选项:

function open_file_in_notepadpp()
    exepath =   "C:/Program Files (x86)/notepad++/notepad++.exe"   #Default location on 64 bit Windows
    command_line_options = "-alwaysOnTop -nosession "
    filetoopen = "c:/temp/foo.txt"
    Base.run(`$exepath $filetoopen`, wait = false)   
end
我尝试过使用反勾号、双引号等多种方式合并
命令行选项,但都没有效果,例如,下面的两行都不起作用:

Base.run(`$exepath $filetoopen`, `$command_line_options`,wait = false)
Base.run(`$exepath $command_line_options $filetoopen`,wait = false)
在Windows命令提示符中,以下各项正常工作:

"C:/Program Files (x86)/notepad++/notepad++.exe" -alwaysOnTop -nosession "c:/temp/foo.txt"

有人能解释一下我遗漏了什么吗?

如果将包含空格的字符串替换为命令,它将被引用。因此,您的命令行参数将被引用,您将得到

julia> `$exepath $filetoopen $command_line_options`
`'C:/Program Files (x86)/notepad++/notepad++.exe' c:/temp/foo.txt '-alwaysOnTop -nosession '`
我想你真正需要的是

julia> command_line_options = ["-alwaysOnTop", "-nosession"]
2-element Array{String,1}:
 "-alwaysOnTop"
 "-nosession"

julia> `$exepath $filetoopen $command_line_options`
`'C:/Program Files (x86)/notepad++/notepad++.exe' c:/temp/foo.txt -alwaysOnTop -nosession`

run
运行后者应该可以。不幸的是,我无法在我的机器上测试它。

crstnbr的答案是正确的,但他无法在他的机器上测试。以下是更正后的代码:

function open_file_in_notepadpp()
    exepath =   "C:/Program Files (x86)/notepad++/notepad++.exe"   #Location if one follows the defaults in the notepad++ installer on 64 bit Wndows
    command_line_options = ["-alwaysOnTop", "-nosession"]          #Use an array to prevent the options being quoted 
    filetoopen = "c:/temp/foo.txt"

    Base.run(`$exepath $filetoopen $command_line_options`,wait = false)

end

基本上你想从julia那里调用npp?为什么不把命令行选项放到run()中呢?我试过
Base.run(
$exepath$filetoopen
$command\u line\u options
,wait=false)
但是得到
错误:方法错误:没有方法匹配spawn\u opts\u swallow(:Cmd)
对不起,由于在Julia中使用backticks封装命令与在堆栈溢出上使用backticks指示标记中的代码之间的冲突,该注释变得混乱。。。
function open_file_in_notepadpp()
    exepath =   "C:/Program Files (x86)/notepad++/notepad++.exe"   #Location if one follows the defaults in the notepad++ installer on 64 bit Wndows
    command_line_options = ["-alwaysOnTop", "-nosession"]          #Use an array to prevent the options being quoted 
    filetoopen = "c:/temp/foo.txt"

    Base.run(`$exepath $filetoopen $command_line_options`,wait = false)

end