0

私はこのコマンドを持つべきバッチファイルを作成しようとしています:

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

私が遭遇する問題はこれです:2行目が実行された後、NuSMV.exeはcmdで実行され、残りのコマンドはNuSMVを終了するまで実行されませんが、NuSMVでコマンド3〜8を実行したいと思います。.batファイルで何を変更する必要がありますか。ありがとう。

4

2 に答える 2

4

コマンド3〜8をテキストファイル(cmds.txtなど)に入れてから、次のようにNuSMVを実行します。

NuSMV -int short.smv -source cmds.txt

マニュアル(nusmv.pdf)p.48から:

コマンドラインオプション-source:system prompt> NuSMV -source cmd fileを使用して、NUSMVにファイルから一連のコマンドを読み取らせて実行させることもできます。

于 2011-04-15T03:44:18.430 に答える
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"
于 2011-04-15T08:13:12.820 に答える