Блог пользователя Babushkin

Автор Babushkin, 15 лет назад, По-русски
Не подскажите как в bat файл вписать строчку "пока программа х работает" или "подождать 2 секунды"
Теги bat
  • Проголосовать: нравится
  • 0
  • Проголосовать: не нравится

15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Нужно для стресс-тестирования?
у меня хорошо работает такой вариант:

<code>
:heaven
gen_tests.exe
Solve1.exe
copy output.txt output.ans
Solve2.exe
fc output.txt output.ans
if ERRORLEVEL 1 goto hell
goto heaven
:hell
</code>
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Спасибо. А можно еще комментарий по поводу "ERRORLEVEL"? Что это?
    P.S может быть вы знаете книжку где доступно написано про bat файлы?
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      ERRORLEVEL возвращает true при ненулевом коде возврата. т.е. файлы не совпали - завершаем чекинг....А книжек про bat не знаю(
      Кстати ты меня не узнал похоже)
      • 15 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Слава, а в твоем варианте не будет проблем, если одна из вызаваемых программ работает пару секунд?
        Тоесть гарантируется ли, что bat-ник не перейдет к строке copy output.txt output.ans, пока не завершит работу Solve1.exe ?

         
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      После выполнения любой команды переменная errorlevel устанавливается на код возврата. errorlevel 1 означает errorlevel >= 1, то есть программа закончила выполнение с ошибкой.
      По умолчанию cmd дожидается окончания выполнения команды. Если написать start solve.exe, тогда программа запустится отдельно, и тут же начнёт выполняться следующая команда.
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Олег, не по всем вопросам обязательно читать книжки) В этом случае тебе нужна техническая документация. Надо читать где-нибудь здесь
      http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/cmd.mspx?mfr=true
      Если нужно прогнать несколько тестов, то понадобится for.

      Для запуска по таймлимиту можно воспользоваться runexe, про который говорил Михаил, а еще можно взять http://imcs.dvgu.ru/cats/docs/sp.exe , который мы используем в CATS ;)