有人可以准确地告诉我sb-ext:run-program的args参数应该是什么样的吗?
如果我这样做:
(sb-ext:run-program "C:/Program Files/iTunes/iTunes.exe"
"C:/lispbox-0.7/opus.mid")
我收到此错误:
debugger invoked on a TYPE-ERROR:
The value "C:/lispbox-0.7/opus.mid" is not of type LIST.
但是,如果我这样做:
(sb-ext:run-program "C:/Program Files/iTunes/iTunes.exe"
(list "C:\lispbox-0.7\opus.mid"))
iTunes打开,但MIDI文件无法播放,即使从Windows命令提示符调用此方法也可以正常工作:
U:\>"C:\Program Files\iTunes\iTunes.exe" C:\lispbox-0.7\opus.mid
注意这个(带正斜杠):
CL-USER> (sb-ext:run-program "C:/Program Files/iTunes/iTunes.exe"
(list "C:/lispbox-0.7/opus.mid"))
具有相同的效果:iTunes打开,但文件未播放。
答案 0 :(得分:2)
在列表版本中,您使用单个反斜杠,它被解析为转义序列。你需要使用双反斜杠。