Форум программистов, компьютерный форум, киберфорум
Наши страницы

Batch (CMD/BAT)

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
Dragokas
Эксперт WindowsАвтор FAQ
16600 / 6985 / 845
Регистрация: 25.12.2011
Сообщений: 10,781
Записей в блоге: 16
#1

Как запустить Batch-файл? Как диагностировать проблему или ошибки в синтаксисе, когда Bat-файл не работает или "вылетает". [Руководство] - CMD/BAT

24.06.2013, 04:45. Просмотров 2833. Ответов 1
Метки нет (Все метки)

Как запустить Batch-файл?
Как диагностировать проблему или ошибки в синтаксисе, когда Bat-файл не работает или "вылетает".


Чтобы увидеть ошибки в синтаксисе, которые приводят к критическому завершению Batch-файла,
необходимо запустить его из CMD.exe (интерпретатора).

Как?
Этап 1. Подготовка:
Если у Вас в скрипте указана директива для скрытия вывода выполняемых команд:
Bash
1
@echo off
Она обычно идет первой строкой в коде.
- Удалите ее, или закомментируйте:
Bash
1
::echo off
иначе будет сложно определить, какая команда вызывает "падение" скрипта или ошибку.

Этап 2. Выполнение скрипта с перенаправлением вывода в файл протокола

Вариант 1. Для систем Windows XP и ниже:

ПУСК -> Выполнить (либо Win + R), вводим CMD, нажимаем {ENTER}

Откроется маленькое черное окно - консоль.
В нем Вы увидите путь к каталогу, в котором будут выполняться команды в данный момент.
Вам нужно перейти в каталог, где расположен бат-файл.
Например, Вам нужно запустить Batch-файл с именем script.cmd, расположенном в папке temp на диске C,
тогда вводим команды:

(ввод каждой строки подтверждаем клавишей {ENTER})

Bash
1
2
cd /D "c:\temp"
script > log.txt
После ввода первой строки Вы увидете на экране приглашение вида:
c:\temp>
что свидетельствует об успешном переходе в каталог c:\temp

Вариант 2. Для систем Windows Vista и выше (переход в папку с батником сразу):

1. Перейдите на уровень выше от каталога, где находится Batch-файл
(иными словами: Вам нужно видеть пиктограмму значка папки, в которой находится Batch-файл)
Если Вы видите перед собой сам Batch-файл, достаточно нажать BackSpace (кнопка "стирания").

2. Наведите указатель мыши на папку с Batch-файлом.
Нажмите и удерживайте кнопку "Shift". Вместе с этим нажмите правую кнопку мыши.

3. Выберите пункт "Открыть окно команд".

Как запустить Batch-файл?  Как диагностировать проблему или ошибки в синтаксисе, когда Bat-файл не работает или "вылетает". [Руководство]

Например, Вам нужно запустить Batch-файл с именем script.cmd, расположенном в папке temp на диске C,
тогда вводим команду:

Bash
1
script > log.txt
Нажимаем клавишу {ENTER}

Этап 3. Анализ файла-протокола.

После завершения работы Batch-файла в папке C:\temp будет создан файл log.txt
Передайте его специалистам, либо при наличии достаточного опыта проведите анализ самостоятельно.

Данный файл сохраняется в кодировке OEM-866, поэтому открывать его нужно в соответствующем редакторе: Русский текст в консоли
Как правило, критические ошибки указаны в самом конце протокола и они предваряют команду, которая их вызвала.

Этап 4. (опционально)
Если бат-файл содержит цикл или является очень большим, полезным также будет подготовить лог уже с командой @echo off
Добавьте ее в самое начало кода и повторите всю процедуру.

Альтернатива вызову батника из-под интерпретатора.
В самом начале кода пишем:
Bash
1
Echo. 1>&3 2>&4 3>log.txt 4>&3
и запускаем Batch-файл.
Все команды, выводимые на экран будут сразу перенаправляться в файл.
4
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.06.2013, 04:45
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как запустить Batch-файл? Как диагностировать проблему или ошибки в синтаксисе, когда Bat-файл не работает или "вылетает". [Руководство] (CMD/BAT):

Запуск служб "Служба доступа к файлам" и "Клиент для сетей Microsoft" с использованием bat- или vbs-файла - CMD/BAT
Доброе время суток. Подскажите пожалуйста можно ли как нибудь запустить службы "служба доступа к файлам" и "Клиент для сетей microsoft"...

Как определить, на виртуальной машине ли запущен bat-файл или нет? - CMD/BAT
Вот, что и нужно, чтобы при запуске бат файла в виртуальной машине выводилось сообщение:"Произведён запуск на виртуальной машине", а если...

Как запустить "explorer.exe" из bat-файла, чтобы сразу открылась нужная папка? - CMD/BAT
Причем открываемая папка определяется обстоятельствами (не важно, главное что не должно быть привязки к конретному пути) Можно и на...

Если установлена .NET Framework 4.0, то запустить BAT-файл, если нет, то установить и затем запустить BAT-файл - CMD/BAT
всем привет! есть такая задачка: определить установлен ли .net на удаленной машине, если нет установить и потом запустить .bat если...

Как создать входящее подключение для VPN через терминал или bat-файл? - CMD/BAT
Всем привет! Ребат помогите разобраться как создать входящее подключение для VPN через терминал или bat-ник. С частью я разобрался но...

Как запустить bat-файл в определённое время? - CMD/BAT
Здравствуйте ! А как запустить bat файл в определенную дату ? Как запустить через несколько перезагрузок ?

1
Dragokas
Эксперт WindowsАвтор FAQ
16600 / 6985 / 845
Регистрация: 25.12.2011
Сообщений: 10,781
Записей в блоге: 16
07.06.2016, 15:57  [ТС] #2
Перехват ошибки (вывода) консольного окна, запущенного из-под чужого GUI приложения.

Можно выполнить при помощи программы Console Window Interceptor (Автор - Dragokas)

Сфера применения:
Автоматически подключается к любому всплывающему консольному окну и не дает его закрыть по завершению работы (exit).
Перехватывает текст и выводит его в окне формы.

Будет полезен для получения текста консольных приложений, которые нельзя запустить через cmd /c.

Состав: EXE + VB6 src.

Как запустить Batch-файл?  Как диагностировать проблему или ошибки в синтаксисе, когда Bat-файл не работает или "вылетает". [Руководство]

-----------------------------------------------------------------------------------------------------------

Пример перехвата ошибки в выводе команды ExecuteFile программы AVZ:

1. Запускаем Console Interceptor.
Выставляем интервал поиска окон в 1 мс.
Нажимаем "Искать консольные окна".

2. Запускаем AVZ. Файл -> Выполнить скрипт:

Pascal
1
2
3
begin
  ExecuteFile('ipconfig', 'flushdns', 1, 0, false);
end.
Запустить. Результат:

Как запустить Batch-файл?  Как диагностировать проблему или ошибки в синтаксисе, когда Bat-файл не работает или "вылетает". [Руководство]

В чем ошибка, думаю, сами должны догадаться.

Примечание по ExecuteFile:

Режим (Mode) должен быть обязательно не 0 (видимое окно).
Terminate = false или WaitTime = 0 необязательно выставлять такими.
AVZ в любом случае получит сигнал о завершении работы процесса,
тем не менее консольное окно не закроется, пока к нему подключено в качестве отладчика другое приложение.


Чтобы не повалить перехватчик, необходимо сперва отключиться от консольного окна ("Deattach") кнопкой "Отключиться от окна".
2
Вложения
Тип файла: zip C_Intercept.zip (13.3 Кб, 3 просмотров)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.06.2016, 15:57
Привет! Вот еще темы с ответами:

Как запустить приложение через bat файл - CMD/BAT
Здраствуйте, скажите есть bat файл. в папке с bat файлом есть приложение exe. Как запустить exe файл из bat не прописывая полный путь...

Как запустить BAT-файл от процесса svchost? - CMD/BAT
Хочу запустить BAT от процесса svchost, что бы когда смотришь в диспетчер задач там был svchost с правильным путем. Как это сделать?

Как запустить bat-файл c правами администратора по умолчанию? - Администрирование Windows
Добрый вечер уважаемые форумчане. Есть .bat (c кодом: ping google.es) на windows7 (x84 пиратка). Работает только если запуск с ...

BAT-файл для перезапуска программы при обнаружении в её логе слова "ERROR" - CMD/BAT
Задача такая есть программа которую нужно перезапускать если у нее в логах появилась запись ERROR. Но у нее каждый раз лог с новым...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru