将命令行参数传递给Clozure common lisp

我以前熟悉python,现在我正在尝试学习常见的lisp并在windows系统下使用ccl(clozure common lisp)。 我发现没有一种方便的方法来运行lisp文件作为python。所以我写了一个bat文件来编译并运行一个lisp文件。
@echo off  

set lisp_filename=%~1  
set ccl_path=D:_play_lispbox-0.7ccl-1.6-windowsx86wx86cl.exe  

IF "%PROCESSOR_ARCHITECTURE%" == "x86" (  
    set fsl_filename=%lisp_filename:.lisp=.wx32fsl%  
) ELSE (  
    set ccl_path=%ccl_path:wx86cl=wx86cl64%  
    set fsl_filename=%lisp_filename:.lisp=.wx64fsl%  
)  

IF NOT EXIST %fsl_filename% goto compile  

for %%a in ("%lisp_filename%") do (  
    set lisp_timestamp=%%~ta  
)  

for %%a in ("%fsl_filename%") do (  
    set fsl_timestamp=%%~ta  
)  

IF "%fsl_timestamp%" LSS "%lisp_timestamp%" (  
    goto compile  
) ELSE (  
    goto run  
)  


:compile  
REM echo "compile"  
%ccl_path% --eval "(progn (compile-file "%lisp_filename:=\%") (ccl:quit))"  

:run  
REM echo "run"  
%ccl_path% --eval "(progn (load "%fsl_filename:=\%") (ccl:quit))"  

:end  
一切顺利,但我找不到将命令行参数传递给lisp脚本。 我试过这样的脚本(test.lisp)
(defun main()
  (format t "~{~a~%~}" *command-line-argument-list*)
  0 ) (main)
但结果是
D:_play_lispbox-0.7ccl-1.6-windowsx86wx86cl64.exe
--eval
(progn (load "D:\_play_\test.wx64fsl") (ccl:quit))
我知道这个输出是我的bat文件的结果,但是我找不到将命令行参数传递给lisp脚本的优雅方法。 任何人都可以告诉我更多关于如何通过论证的事情? 我希望最好的答案可以实现如下:
test.lisp a b c
和输出
test.lisp
a
b
c
任何建议都非常感谢。 :-)     
已邀请:
我得到了其他人的一些建议,我认为这非常有用。 我在这里给出结果,希望对其他人有用。   CCL在遇到命令行参数时停止处理命令行参数   伪名称“ - ”;然后可以使用以下任何参数   作为CCL的价值:UNPROCESSED-COMMAND-LINE-ARGUMENTS。那个价值   是一个字符串列表。
console> ccl64 -- these arguments aren't processed
Welcome to Clozure Common Lisp Version 1.7-dev-r14704M-trunk (FreebsdX8664)!
? *unprocessed-command-line-arguments*
("these" "arguments" "aren't" "processed")
    

要回复问题请先登录注册