我们希望使用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/

10-11 21:51