windows - 如何使用 asdf uiop :run-program under sbcl 从 Lisp 运行 Windows shell 命令

标签 windows shell common-lisp sbcl asdf

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

相关文章:

Windows CDROM 弹出

C++ float 数组维度

macos - 执行后退出终端

python - 修改Python脚本批量转换目录下所有 "WOFF"文件

common-lisp - Common Lisp 中的重置状态

lisp - Slime:frame-source-location 未实现/我的 sldb Backtrace 输出是否正常?

c++ - 是否可以在 Windows C++ 中以编程方式检查我的笔记本电脑是通过 Wi-Fi 连接还是通过 "wired LAN"连接?

Windows 10 通过鼠标悬停延迟激活窗口?

shell - awk 中的外部变量

macros - Common Lisp 宏模式匹配