Пакетный файл не выполняется полностью после выполнения другого .exe - PullRequest
0 голосов
/ 15 апреля 2011

Я пытаюсь создать командный файл, который должен иметь следующие команды:

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, но я хочу запустить команды 3-8 в NuSMV. Что мне нужно изменить в моем .bat файле. Спасибо.

Ответы [ 2 ]

4 голосов
/ 15 апреля 2011

Поместите команды 3-8 в текстовый файл (например, cmds.txt), затем запустите NuSMV следующим образом:

NuSMV -int short.smv -source cmds.txt

Из руководства ( nusmv.pdf )стр.48:

Также возможно заставить NUSMV читать и выполнять последовательность команд из файла, с помощью параметра командной строки -source: системное приглашение> NuSMV -source cmd file

2 голосов
/ 15 апреля 2011

Завершая ответ Vik, вы можете создать файл команд 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 с его полным путем. В обоих случаях вы должны затем вызвать BAT из текущего каталога, в котором находится short.smv.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"
...