我们希望使用 sbcl 和 asdf uiop:run-program
从 Lisp 中调用 Windows shell 命令。
我们在 Windows 10 上使用 sbcl 1.3.6 在 emacs/slime 下所做的工作。 64 位和 asdf 3.1.5。是:
CL-USER>(require 'asdf)
(shadowing-import 'asdf::run-program)
然后,正确的工作方式(如在 Unix 上)是这样的:
CL-USER>(run-program "echo test" :output :string)
"test
"
NIL
0
CL-USER>
但是对文件的任何操作根本不起作用并且会出错:
(run-program "dir")
(run-program "copy foo.txt tmp")
(run-program "xcopy *.texi tmp")
有或没有 :output :string
作为参数。我们不确定我们是否做错了什么,或者是否存在与 sbcl 或 asdf 相关的错误,或者 Windows 10 的 asdf 和 sbcl 是否仍然支持此功能。类似的 shell 命令似乎在 Unix 上运行良好。
任何帮助将不胜感激。
最佳答案
过去几个月,Windows 上对 sbcl 运行程序的支持得到了显着改善,这主要归功于 Elias Pipping 的努力,以及 Robert Goldman 和我的大量测试和错误修复。
获取最新的 SBCL 1.3.15 和最新的 ASDF 3.2.0(甚至“测试”分支中的 3.2.0.2),它应该会工作得更好。
关于windows - 如何使用 asdf uiop :run-program under sbcl 从 Lisp 运行 Windows shell 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42567106/