3

有人能准确地告诉我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 打开,但文件未播放。

4

1 回答 1

2

在列表版本中,您使用单个反斜杠,它被解析为转义序列。您需要使用双反斜杠。

于 2010-11-02T14:09:48.917 回答