2014-03-26 52 views
1

我目前正在使用SWI Prolog學習Prolog。我可以用下面的代碼的腳本文件和論證在Linux的啓動序言:使用來自Windows命令行的參數加載序言文件

swipl -s logic1.pl folder1 

這將啓動序言,加載特等文件並讀取「文件夾1」的說法。

當我嘗試在我的Windows 7機器上通過cmd執行相同的操作時,參數「folder1」似乎無法識別。我在CMD不斷推出SWI Prolog的使用下面的命令:

swipl -s logic1.pl folder1 

SWI Prolog的打開,但序言文件檢查正確的論點已經提供,然後拋出一個錯誤信息,告訴我,我需要包括folder1參數,然後關閉prolog。

誰能告訴我如何正確啓動SWI Prolog文件參數?

感謝

+0

你能告訴你'logic1.pl'檢索的參數有代碼?我嘗試過'current_prolog_flag(argv,ArgList)',在Linux中它包含命令和選項標誌作爲參數列表的一部分,但在Windows中,它只提供參數本身。所以在行爲上有一些差異,具體取決於... – lurker

+0

在SWI-Prolog中,還有'os_argv'標誌。請參閱http://www.swi-prolog.org/pldoc/man?section=flags#flag:os_argv –

回答

1

簡短的回答:只包含--folder1之前。

龍答:

logic1.pl:

main :- 
    current_prolog_flag(argv, AllArgs), 
    append(_, [-- | Args], AllArgs), 
    writeln(Args). 

運行:

$ swipl -s logic1.pl -t main --quiet -- folder1 
[folder1] 
相關問題