从Emacs运行Windows批处理文件
问题描述:
我对gnu emacs有点新,所以也许这是一个noob问题,但我有一些批处理文件,我在编译emacs时编译/编译/执行/调试时使用了很多/等等。我想知道我怎么能A)从emacs运行这些批处理文件,而不必打开一个cmd提示窗口或去Windows资源管理器和B)绑定到一个快捷键(也许我可以指定文件?)我已经看到几个网上关于在批处理模式下运行emacs的事情,但我不相信这是我正在寻找的东西。我知道这是可能的,因为我已经看到其他人从emacs运行批处理(输出和一切都会出现在与当前相邻的新缓冲区中,就好像你做的那样)从Emacs运行Windows批处理文件
在此先感谢!
答
要在Emacs中运行一个任意的shell命令,你需要调用shell-command
,它绑定到M-!
参见C-H˚Fshell-command
(或C-HķM-!)的详细信息。
我相信Windows原生Emacs,默认外壳是cmd
(或其别名),所以我有理由相信这是你的想法。
我不知道所有的在Windows下工作,但相关的命令是否:
-
M- & -
async-shell-command
-
M- | -
shell-command-on-region
并配有前缀参数(例如C-ùM-!)任何这些命令将插入外壳命令的输出入电流缓冲。 (在shell-command-on-region
的情况下,取代的区域。)
当我尝试这一点,它告诉我它不能运行cmd.exe的。此外,我不是100%确定,如果这是我正在寻找。如果错误,请纠正我,但是您给出的建议仅适用于运行单个shell命令,因为我想执行整个批处理文件。 – BossLetsPlays 2014-12-03 17:45:34
“shell命令”是任何可以从shell提示符输入的内容。如果shell是'cmd',那么“shell命令”就是你可以从'cmd'提示符执行的任何东西。我假设你的批处理文件是可执行文件,并且你可以通过指定它的名字或路径作为运行的shell命令来运行它。 – phils 2014-12-04 00:43:54
我明白,但是当我尝试它时,我得到的回报是一条消息,指出system32/cmd.exe无法运行 – BossLetsPlays 2014-12-05 02:05:42