批处理文件并没有其他的.exe后完全执行,执行
问题描述:
我试图创造出应该有这个命令的批处理文件:批处理文件并没有其他的.exe后完全执行,执行
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文件中进行更改。谢谢。
答
穿戴在一个文本文件命令3-8,然后运行NuSMV如下(例如,cmds.txt):
NuSMV -int short.smv -source cmds.txt
从手册(nusmv.pdf)第48页:
也可以使NUSMV读 并从文件中执行的命令 的序列,通过命令行选项 - 源: 系统提示> NuSMV -source CMD文件
答
完成维克的回答,您可以创建NUSMV在同一个BAT文件
@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"
+1,要完成它,您可以引用'“%TEMP \ cmds.txt”'来保护在临时路径中有空格。并美化你可以结合回声的像'(回声去&回声pich_state -r&回声print_current_state -v)>“%TEMP%\ cmds.txt”' – jeb 2011-04-15 08:41:26
@jeb,谢谢,我已编辑,以反映您的建议 – 2011-04-15 09:32:11