Я пытаюсь скомпилировать некоторые острые файлы на ходу, используя командный файл в окнах.Как определить, успешно ли скомпилирован csc.exe
Вот .bat
файл
C:\windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /t:exe /out:the.exe %1
the.exe
Мои файлы имеют Console.Read()
вызов, чтобы остановить окно от закрытия и для пользователя, чтобы увидеть выход исполнения. Проблема заключается в том, что если компиляция не работает по какой-либо причине, окно показывает проблему компиляции и немедленно закрывается, так как она никогда не достигает вызова Read()
.
Я могу использовать pause
в конце в файле .bat
, но затем мне нужно нажать клавишу дважды, чтобы закрыть окно, если компиляция/выполнение завершается успешно.
Что я хотел бы знать, если компиляция прошла успешно или нет. Если он был успешным, выполните the.exe
или, если он не был тогда, не выполнил исполняемый файл, а вместо pause
или что-то еще, чтобы остановить окно, чтобы я мог видеть ошибки.
ли инструмент компилятора 'csc.exe' возвращает код ошибки? Если это так, вы можете добавить '&& the.exe || pause'; '&&' и '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ; чтобы выяснить, возвращается ли код ошибки, поместите 'echo% ErrorLevel%' после командной строки 'csc' и запустите скрипт (непосредственно из командной строки) с и без возникновения ошибки компиляции; перезагрузите командную строку каждый раз, чтобы убедиться, что состояние ошибки сбрасывается ... – aschipfl
Да, я тоже думал об этом, но возвращаемый вывод - это строка, начинающаяся с материалов лицензирования Microsoft и т. д., а затем куча отказа от ответственности и т. д. И тогда любые ошибки там могут быть. Одним из решений является анализ результатов и поиск ключевых слов, таких как «предупреждение» или «ошибка», но это похоже на взломание и использование меча для вязания свитера. Должно быть более элегантное решение. – Achshar
Ах, стреляй в ErrorLevel, это то, что мне нужно. Благодаря тонну! Если вы можете отправить ответ, я соглашусь с ним. – Achshar