як зробити “натисніть Enter, щоб вийти” в пакетному режимі


78

Я використовую rake для побудови свого проекту, і у мене є файл build.bat, подібний до цього:

@echo off
cls
rake

Коли я двічі клацну на build.bat, спливає вікно dos і відображає весь прогрес, але закривається, коли завдання закінчено. Чи є спосіб зробити Console.ReadLine, щоб користувач міг отримати можливість переглянути журнал?

Дякую.

Оновлено:

Я пробував нижче, але не працював. не впевнений чому.

@echo off
cls
rake
pause

Відповіді:


93

Інтерпретатори за замовчуванням від Microsoft виконуються таким чином, що змушує їх вийти, коли вони досягають EOF. Якщо rake - це інший пакетний файл, інтерпретатор команд перемикається на нього і виходить після закінчення інтерпретації rake. Щоб запобігти цьому, напишіть:

@echo off
cls
call rake
pause

ІМХО, оператор виклику відстоює інший екземпляр інтерпретатора, тим самим перешкоджаючи поточному інтерпретатору перемикатися на інший вхідний файл.



10

Я припускаю, що rakeце пакетна програма. Коли ви викликаєте його без call, тоді контроль не повертається до вашого build.bat. Спробуйте:

@echo off
cls
CALL rake
pause


1

На жаль ... Неправильно зрозумів питання ...

Пауза - це шлях

Стара відповідь:

Ви можете передавати команди у файл виправлення ...

спробуй

build.bat < responsefile.txt

1

Використовуйте цей фрагмент:

@echo off
echo something
echo.
echo press enter to exit
pause >nul
exit

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.