Создание 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 в конце скрипта, скрипт остановится и будет ждать, пока вы нажмете клавишу, прежде чем продолжить
Два варианта:
отправить вывод в файл (
command > c:\output.log
)Установите задержку. В новых версиях это можно сделать с
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.