Пропустить дополнительную опцию для перечисления всех ошибок при компиляции в пакетном файле

Я компилирую пакетный файл внутри пакетного файла, который заполняет все c-файлы в текущем каталоге. Если построить успех, все идет хорошо. Если сборка завершилась неудачно с небольшим количеством ошибок, то также все пройдет нормально, но проблема возникает только при сборке ошибок с большим количеством ошибок, чем отображается. Отображая сообщение ----more-----, он останавливается и не переходит к следующим командам в пакетном файле.

D3LUY2V.c:1682: case label not within a switch statement
D3LUY2V.c:1685: case label not within a switch statement
D3LUY2V.c:1699: case label not within a switch statement
D3LUY2V.c:1703: case label not within a switch statement
D3LUY2V.c:1706: case label not within a switch statement
D3LUY2V.c:1709: case label not within a switch statement
D3LUY2V.c:1712: case label not within a switch statement
D3LUY2V.c:1715: case label not within a switch statement
D3LUY2V.c:1718: case label not within a switch statement
D3LUY2V.c:1724: case label not within a switch statement
D3LUY2V.c:1730: case label not within a switch statement
D3LUY2V.c:1736: case label not within a switch statement
D3LUY2V.c:1744: case label not within a switch statement
D3LUY2V.c:1945: case label not within a switch statement
D3LUY2V.c:1948: case label not within a switch statement
D3LUY2V.c:1966: case label not within a switch statement
D3LUY2V.c:1970: case label not within a switch statement
D3LUY2V.c:1974: case label not within a switch statement
D3LUY2V.c:1978: case label not within a switch statement
D3LUY2V.c:1981: case label not within a switch statement
D3LUY2V.c:1984: case label not within a switch statement
D3LUY2V.c:1987: case label not within a switch statement
D3LUY2V.c:1993: case label not within a switch statement
D3LUY2V.c:1999: case label not within a switch statement
D3LUY2V.c:2005: case label not within a switch statement
D3LUY2V.c:2013: case label not within a switch statement
-- MORE --

Вот пакетный файл, который я использую, где mk123456 — это пакет, который компилирует исходные файлы. но я не могу редактировать этот пакетный файл. Этот пакетный файл mk123456 отображает больше -- если ошибок больше, как показано выше.

@CD %CD%
@FOR %%* IN (.) DO SET cdir=%%~n*
SET cpath = %cdir%
@ECHO **********Copying SourceFiles From Src****************
@XCOPY /Q .\Src\*.c     /Y
@XCOPY /Q .\Src\*.h     /Y
@ECHO **********Compling %cdir% *******************
CALL mk123456
DEL mk123456.bat

Вот снимок экрана с ошибкой в ​​пакетном файле, где он останавливает пакетный файл. Есть ли возможность пропустить это сообщение в командном файле и перейти к концу, как вручную, если мы введем «Q», это означает, что оно будет пропущено до конца сообщения об ошибке. Как сделать в пакетном файле, чтобы пропустить это сообщение, которое останавливает выполнение пакетного файла.


person Chandra Sekhar K    schedule 05.02.2014    source источник
comment
Было бы полезно, если бы вы показали пакетный файл. Вы можете попробовать Echo Q|whatever|more   -  person Matt Williamson    schedule 05.02.2014
comment
Нам нужно увидеть командный файл, чтобы помочь.   -  person 09stephenb    schedule 05.02.2014
comment
Привет, я отредактировал вопрос и добавил код пакетного файла...   -  person Chandra Sekhar K    schedule 05.02.2014
comment
Измените строку call на эту :: call mk123456 - больше подсказок не исчезнет? А в set cpath = %cdir% уберите пробелы. Они включаются в имя и содержимое переменной.   -  person foxidrive    schedule 06.02.2014


Ответы (1)


Если вы можете удалить mk123456.bat, то я не понимаю, почему вы не можете его редактировать.

Но я верю, что у меня есть решение для вас. Я предполагаю, что ваш сценарий mk123456.bat передает вывод в MORE. Если это так, то вы можете предотвратить его приостановку, изменив оператор CALL следующим образом:

CALL mk123456 | findstr "^"
person dbenham    schedule 06.02.2014