我正在尝试创建应该具有以下命令的批处理文件:
cd "c:\Program files\NuSMV\2.5.2\bin\"
NuSMV -int short.smv
go
pick_state -r
print_current_state -v
simulate -r 3
show_traces -t
show_traces -v
我遇到的问题是:执行第二行后,NuSMV.exe在cmd中运行,其他命令在我退出NuSMV之前不执行,但我想在NuSMV中运行命令3-8。我需要在.bat文件中更改什么。感谢。
答案 0 :(得分:4)
将命令3-8放入文本文件(例如,cmds.txt)中,然后按如下方式运行NuSMV:
NuSMV -int short.smv -source cmds.txt
从手册(nusmv.pdf)p.48:
也可以读取NUSMV 并执行一系列命令 从文件,通过命令行 选项-source: 系统提示> NuSMV -source cmd文件
答案 1 :(得分:2)
完成Vik答案,您可以在同一个BAT文件中创建NUSMV命令文件
@echo off
pushd "c:\Program files\NuSMV\2.5.2\bin\"
echo go >"%TEMP%\cmds.txt"
echo pick_state -r >>"%TEMP%\cmds.txt"
echo print_current_state -v >>"%TEMP%\cmds.txt"
echo simulate -r 3 >>"%TEMP%\cmds.txt"
echo show_traces -t >>"%TEMP%\cmds.txt"
echo show_traces -v >>"%TEMP%\cmds.txt"
NuSMV -int short.smv -source "%TEMP%\cmds.txt"
del "%TEMP%\cmds.txt"
popd
此外,我建议您不要将当前目录更改为NuSMV目录。编辑PATH,或者仅指定NuSMV的完整路径。在这两种情况下,您应该从short.smv所在的当前目录中调用BAT .C
@echo off
echo go >"%TEMP%\cmds.txt"
echo pick_state -r >>"%TEMP%\cmds.txt"
echo print_current_state -v >>"%TEMP%\cmds.txt"
echo simulate -r 3 >>"%TEMP%\cmds.txt"
echo show_traces -t >>"%TEMP%\cmds.txt"
echo show_traces -v >>"%TEMP%\cmds.txt"
"c:\Program files\NuSMV\2.5.2\bin\NuSMV" -int short.smv -source "%TEMP%\cmds.txt"
del "%TEMP%\cmds.txt"