#windows #scripting #batch-file #command
#Windows #сценарии #пакетный файл #команда
Вопрос:
Рассмотрим, a.exe
отсутствует в папке D:temp
cd /d D:temp .a.exe .b.exe
Я хочу выполнить a.exe
сначала, и я должен дождаться его завершения, а затем я хочу выполнить b.exe
. Если consider a.exe
отсутствует в этом пути, то он выдает сообщение об ошибке, как показано ниже, а затем начинает выполнение следующей команды b.exe
.
.a.exe не распознается как внутренняя или внешняя команда
Но если я выполню этот exe-файл с помощью start, он отобразит сообщение об ошибке в одном диалоговом окне.
cd /d D:temp запустить / подождать. a.exe запустить / подождать.b.exe
Я не хочу такого поведения. Я хочу выполнить только с start /wait
, но если этого exe-файла там нет, он должен вернуться к следующей команде.
Примечание: я не хочу проверять, присутствует ли exe или нет перед запуском, как указано ниже
cd /d D:temp ЕСЛИ НЕ СУЩЕСТВУЕТ. a.exe выход 1 запустить / подождать. a.exe запустить / подождать. b.exe
Комментарии:
1. Почему бы и нет? : «Я не хочу проверять, присутствует ли exe или нет перед запуском, как указано ниже»
2. Итак, вы хотите знать, если a.exe есть, но вы не хотите проверять, есть ли она там? Звучит немного противоречиво для меня. В чем проблема с проверкой, если a.exe есть ли?
3. Я хочу знать, есть ли какой-либо способ избежать этого диалогового окна с сообщением об ошибке. Поскольку в моем пакетном файле я буду вызывать множество exe-файлов, поэтому я не хочу проверять, присутствует exe или нет.
4. Это в командном файле, или вы вводите эти команды вручную? В командном файле вам не нужно использовать start / wait; он все равно будет ждать.
5. @HarryJohnston Я знаю, что выполнение пакетного сценария будет ждать, даже если я не использую
start /wait
для выполнения. Но я хочу, чтобы это выполнение должно было произойти в новом окне.
Ответ №1:
Это позволит избежать диалогового окна:
start /wait cmd /c .a.exe
Ответ №2:
./a.exe 2> nul
Этот способ вызова подавляет сообщение об ошибке.
Комментарии:
1.
./a.exe 2> nul
не возвращает никакого сообщения об ошибке. Но я попробовал ‘start./a.exe 2> null` это возвращает сообщение об ошибке в диалоговом окне