使用 explorer.exe 打开可执行文件时,如何将参数传递给可执行文件?

使用 explorer.exe 打开可执行文件时,如何将参数传递给可执行文件?

这与我的另一个问题的解决方案密切相关:如何在 Cygwin 中调用 Windows 环境中的 Windows gvim?

我现在发现,explorer.exe 'C:\Program Files (x86)\Vim\vim73\gvim.exe'在 Cygwin 命令行中输入命令可以在 Windows 上下文中正确打开 Windows 的 gVim。我gvim在 .bashrc 中编写了一个函数,当不带参数调用时,它会执行上述命令。但是,我想知道如果调用该函数,如何将参数传递给 gVim参数。尝试explorer.exe 'C:\Program Files (x86)\Vim\vim73\gvim.exe' D:\myfile.txt只会打开 Windows 资源管理器到库页面,因此这种直接语法不起作用,但我找不到传递这些参数的正确方法。
谷歌搜索只给了我 explorer.exe 的开关列表,但没有关于将参数传递给使用 explorer.exe 执行的可执行文件的列表。

编辑:请注意,我是在 Cygwin 中运行这个程序的,在最终使用之前,我尝试了许多更直接的解决方案explorer.exe,如顶部链接的问题中所述。cygstart并且cmd.exe /c都在打开的 gVim 中留下了 Cygwin 环境的残余,这会导致那里提到的一些问题。

答案1

我发现实现此目的的最佳方法是创建一个批处理文件,其中包含对可执行文件的调用以及参数,然后使用 explorer.exe 运行该批处理文件。在这种情况下,批处理文件在 explorer 进程的上下文中运行,并且它运行的所有内容都保留在同一上下文中。这意味着创建一个批处理文件,让我们调用它c:\activate.bat并将调用放入该文件中C:\Program Files (x86)\Vim\vim73\gvim.exe' D:\myfile.txt。一旦文件存在,就可以使用 explorer.exe 来调用它%windir%\explorer.exe c:\activate.bat。就我而言,我之后也删除了该文件,但这不是必需的。

相关内容