【问题标题】:Loading a prolog file with arguments from windows command line从 Windows 命令行加载带有参数的 prolog 文件
【发布时间】:2014-03-26 11:30:49
【问题描述】:

我目前正在使用 SWI Prolog 学习 Prolog。我可以使用以下代码在 Linux 中使用脚本文件和参数启动 prolog:

swipl -s logic1.pl folder1

这会启动 prolog,加载 .pl 文件并读取“folder1”参数。

当我尝试通过 cmd 在我的 Windows 7 机器上执行相同操作时,似乎无法识别参数“folder1”。我一直在 cmd 中使用以下命令启动 SWI Prolog:

swipl -s logic1.pl folder1

SWI Prolog 打开,但 prolog 文件检查是否提供了正确的参数,然后抛出一条错误消息,告诉我需要包含 folder1 参数,然后关闭 prolog。

谁能告诉我如何正确启动带有文件参数的 SWI Prolog?

谢谢

【问题讨论】:

  • 你能展示你在logic1.pl 中的代码来检索参数吗?我尝试了current_prolog_flag(argv, ArgList),在 Linux 中它包含命令和选项标志作为参数列表的一部分,但在 Windows 中,它只提供参数本身。所以在行为上有一些差异,取决于...
  • 在 SWI-Prolog 中,还有 os_argv 标志。见swi-prolog.org/pldoc/man?section=flags#flag:os_argv

标签: windows prolog swi-prolog


【解决方案1】:

简答:只需在folder1 之前包含--

长答案:

logic1.pl:

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

运行:

$ swipl -s logic1.pl -t main --quiet -- folder1
[folder1]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-23
    • 1970-01-01
    • 1970-01-01
    • 2012-09-19
    • 2014-12-15
    • 2023-03-28
    相关资源
    最近更新 更多