有什么方法可以在不运行 cmd.exe 的情况下解释命令?
我正在寻找一种运行可执行文件或脚本的方法,而无需让 cmd.exe 为我执行此操作。目前我正在使用 cmd.exe /C
启动一个进程,我需要为我做以下事情:
- 在当前目录中查找可执行文件并将 PATH
- 解释为 PATHEXT允许无扩展名脚本命令
- 解释文件关联,例如,当我告诉它运行 blah.py 时,运行 python 解释器。
我不需要能够运行任何“内置”命令,例如“dir”。
是否可以避免使用 cmd.exe
而无需重新实现上述所有功能?一定有某种 shell API 来完成上述事情,对吧?
I am looking for a way to run an executable or a script without getting cmd.exe to do it for me. Currently I'm launching a process using cmd.exe /C <command>
, which I need to do the following things for me:
- Look for the executable file in the current directory and PATH
- Interpret PATHEXT to permit extension-less script commands
- Interpret file associations to, e.g., run the python interpreter when I tell it to run
blah.py
.
I don't need to be able to run any of the "built-in" commands, like "dir".
Is it possible to avoid using cmd.exe
without essentially re-implementing all of the above functionality? There must be some sort of shell API to do the above things, right?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
ShellExecute 应该完全按照您的意愿执行 - 您可以使用它来启动可执行文件或文件(然后使用标准应用程序打开),
http://msdn.microsoft.com/en-us/library/bb762153%28v=vs.85%29.aspx
ShellExecute should do exactly what you want - you can use it to launch an executable or a file (which is then opened with the standard application),
http://msdn.microsoft.com/en-us/library/bb762153%28v=vs.85%29.aspx
看一下 System.Diagnostics.Process.Start( appName, args) 。
http://msdn.microsoft.com/en-us /library/system.diagnostics.process.start.aspx 关于 shell,你看过吗:http://msdn.microsoft.com/en-us/库/bb773177(v=vs.85).aspx ?
Take a look at System.Diagnostics.Process.Start( appName, args) .
http://msdn.microsoft.com/en-us/library/system.diagnostics.process.start.aspx and about the shell, have you looked it: http://msdn.microsoft.com/en-us/library/bb773177(v=vs.85).aspx ?