Создание bat-файла или cmd

Я хочу создать bat-файл, чтобы создать какую-то базовую задачу. Когда я запускаю это, оно закрывает окно. Я предполагаю, что это ошибки. Как я могу остановить летучую мышь, закрывая окно, чтобы я мог увидеть ошибку.

mybat.bat:

echo cd /d d:
echo sencha create jsb -a http://my.local/ext/cutter/app/index.html -p app.jsb3
echo sencha build app.jsb3 -d .

4 ответа

Пакетные скрипты закроют само окно после запуска, это не является признаком ошибки, если вы поставите слово pause в конце скрипта, скрипт остановится и будет ждать, пока вы нажмете клавишу, прежде чем продолжить

Два варианта:

  1. отправить вывод в файл (command > c:\output.log)

  2. Установите задержку. В новых версиях это можно сделать с timeout \t xxx где ххх - количество секунд. В старых версиях вы можете произвести эффективную задержку с такими вещами, как

    PING 127.0.0.1 -n 6

где каждый пинг занимает около одной секунды... но эй, вам не нужна точность, верно?:)

Оба подхода позволяют избежать безумия на кнопке паузы

Ответ Криса правильный. Однако, если бы это была действительно ошибка, пауза не помешала бы оболочке cmd просто выйти. Вот как я могу устранить эту проблему, просто не перенаправляя вывод (и не открывая файл журнала вывода):

Запустите cmd.exe. Затем в окне командной строки запуститеcmd<enter>'еще пару раз. Это выполняет cmd.exe как дочерний элемент cmd.exe, но в том же командном окне.

Теперь вызовите.bat /.cmd из командного окна, например C:\Temp\mybat.bat - если произойдет ошибка, он выйдет из cmd.exe, в котором он работал, и отобразит ошибку (и любые другие выходные данные) в окне, но вернет обработку родительскому процессу cmd.exe в том же командном окне. Поскольку существует родительский процесс, пакетное окно не просто закроется при ошибке.

Запустите его из командной строки (cmd), и он покажет вам вывод и не закроется, когда закончите. Причина, по которой он закрывается, заключается в том, что вы просто выводите (печатаете) материал на терминал. Это на самом деле ничего не делает. Убери все эти эхо.

C:\>echo /?
Displays messages, or turns command-echoing on or off.

  ECHO [ON | OFF]
  ECHO [message]

Type ECHO without parameters to display the current echo setting.
Другие вопросы по тегам