Bat файл открывается и сразу закрывается
комментарии писал уже на форуме так-что не кричите на меня что типо изза коментов не робит батник. » |
Берётесь писать комментарии — для них есть REM.
да,я знаю,похожая тема от меня уже была. там Iska предлогал более короткий вариант но я так и не допер как им пользоваться)) » |
Спрашивайте, не стесняйтесь. Только там спрашивайте, не здесь.
Там мы проверяли длину строки. А здесь что Вы хотите сделать?
Не стоило. Лучше взять книжку страниц на тысячи полторы.Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.
Iska, Замечал много где пишут такие точки :: это тоже коментарий, где про этом ожно почитать? не. я имею виду что это как в школе. ты проучился среднюю школу пошел в старшую и ты учишься и чему-то даже смог научиться но вот вспомнить чему тебя учили в средней школе уже не можешь.И тем не менее: Цитата: Код: C:\Мои проекты\0119>setlocal enableextensions enabledelayedexpansion Непредвиденное появление: ="10". » |
а вот сейчас тот момент когда я понимаю что забыл поставить еще одно равно)))
теперь все норм.
Там мы проверяли длину строки. А здесь что Вы хотите сделать? » |
Iska, Замечал много где пишут такие точки :: это тоже коментарий, где про этом ожно почитать? » |
Это ни разу не комментарий. Двоеточие — это метка. Два двоеточия подряд — ошибочная метка. Так делать не следует. Некоторые несознательные личности пользуются тем, что интерпретатор команд не обрывает исполнение пакетного файла на месте таких ошибочных меток и даже не сообщает об ошибке.
примерно тоже самое. VAR- это переменная которая получается при вычислении длины строки. » |
Место в пакетном файле, на которое можно передать управление посредством goto или call.
Во многих инструкциях на сайте для выполнения действий предлагается использовать команды в командной строке, в некоторых случаях — bat файл. Один из частых комментариев к таким материалам: командная строка сразу закрывается и нельзя ничего успеть увидеть.
В этой статье подробно о том, почему командная строка сразу закрывается, что делать, чтобы она не закрывалась применительно к Windows 11 и Windows 10 (актуально и для предыдущих систем), а также дополнительная информация на тему.
Почему командная строка закрывается и что делать, чтобы этого не происходило
Рассмотрим два случая, когда командная строка закрывается:
- После выполнения введённой команды
- После выполнения bat-файла
В первом случае почти всегда причиной является ввод команды не в командную строку, а в диалоговое окно «Выполнить», которое некоторые пользователи считают командной строкой, хотя это не так. Подробнее о том, как именно работают указанные системные элементы:
- Если вводить команду в окно «Выполнить» (вызываемое клавишами Win+R, либо через правый клик по кнопке «Пуск» в случае Windows 11 и 10), окно командной строки откроется и закроется сразу после выполнения, если дальнейший ввод пользователя не требуется.
- Если запустить непосредственно командную строку (Как открыть командную строку, Запуск командной строки от имени администратора), и ввести команду уже в ней, автоматическое закрытие окна происходить не будет, и вы увидите, что именно выдает команда в результате выполнения.
В случае выполнения bat-файла, если команды в нём не требуют ввода пользователя и не содержат команд паузы до нажатия клавиши пользователем, то при запуске (простым двойным кликом из расположения файла) и успешном выполнении, окно командной строки будет автоматически закрыто.
Если вы хотите иметь возможность прочитать ход выполнения и результат работы bat-файла, вы можете:
- Открыть командную строку (как во втором пункте выше), указать путь к bat-файлу и нажать Enter. Он будет запущен и выполнен, но командная строка не будет закрыта после выполнения.
- В конце файла добавить команду PAUSE (сделать это можно в любом текстовом редакторе, подробнее: Как создать bat файл в Windows). В этом случае после выполнения любым способом окно не закроется пока вы не нажмете любую клавишу.
Командная строка сама открывается и сразу закрывается
Иногда вопрос о закрытии командной строки относится к другой ситуации: без каких-либо действий пользователя, обычно при входе в систему, но иногда и в произвольные моменты времени, само открывается окно командной строки и тут же закрывается, раньше, чем вы успеваете что-либо увидеть. В этом случае возможны следующие варианты:
Командная строка, будучи запущенной, закроется только тогда, когда пользователь нажмет кнопку завершения работы или выполнит в ней команду exit. Но бывает и такое, что после командная строка закрывается сама, не сообщая пользователю о результатах отработанного сценария и не сообщая о причинах закрытия. Как правило, с таким поведением консоли приходится сталкиваться при выполнении скриптов — CMD или BAT -файлов.
Это вполне нормально, но иногда нужно, чтобы после отработки такого скрипта консоль не закрывалась автоматически, а ждала ввода следующей команды.
Ну что же, понудить ее изменить свое поведения очень просто. Самый простой способ — это добавить в конец командного файла команду pause или специальный ключ, запускающую копию командной строки.
Главное, чтобы у вас имелись права на редактирование этого самого скрипта.
Отройте скрипт Блокнотом или любым другим текстовым редактором и добавьте в самый конец кода команду pause или cmd /k.
Это два разных способа и работают они по-разному.
Команда cmd /k работает несколько иначе.
Будучи добавлена в конец сценария, она как-бы перезапускает консоль, выводя стандартное приглашение ввести новую команду.
Если же добавить cmd /k в середину кода, его выполнение будет прервано и прекращено.
В этом основная разница между этими командами.
Тонкая настройка командной строки
Если нет желания возиться с каждым командным файлом, отредактируйте параметры работы самой командной строки.
Для этого открываем командой regedit редактор реестра и разворачиваем ветку:
HKCR\batfile\shell\open\command
В правой колонке меняем значение параметра по умолчанию с "%1" %* на cmd.exe /k "%1" %*.
Тоже самое проделываем с параметром по умолчанию в ветке HKCR\cmdfile\shell\open\command , для командных файлов формата CMD .
Вот и всё, отныне командная строка будет закрываться только по решению юзера, если только в сценарий не прописана команда exit .
Какую команду можно поставить в конце командного файла, чтобы предотвратить автоматическое закрытие консоли после выполнения файла?
ОТВЕТЫ
Ответ 1
В пакетных файлах Windows/DOS:
Ответ 2
Зависит от точного вопроса!
Обычно pause выполняет задание в файле .bat.
Если вы хотите, чтобы cmd.exe не закрывался, чтобы продолжать печатать, используйте команду cmd /k в конце файла.
Ответ 3
Если вы хотите, чтобы cmd.exe не закрывался и мог продолжать печатать, используйте cmd /k
Просто почувствовал необходимость уточнить, что делает /k (с сайта Windows):
/k : Выполняет команду, указанную в строке, и продолжает.
Итак, cmd /k без последующей команды в конце файла bat просто сохранит окно cmd.exe для дальнейшего использования.
С другой стороны, pause в конце командного файла просто приостанавливает процесс и завершает cmd.exe при первой кнопке, нажав
Ответ 4
Ниже приведен список команд в командном файле, который откроет новые окна командной строки, а новые окна не будут автоматически выходить.
Ответ 5
Если вы используете Maven и хотите пропустить ввод и не допустить закрытия консоли, чтобы увидеть результат, вам нужно использовать команду CALL в скрипте, кроме просто "mvn clean install".
Как это закроет консоль
Так консоль будет оставаться открытой
Если вы не используете команду CALL , ни один из примеров вставки не будет работать.
Ответ 6
Добавьте cmd.exe в новую строку под кодом, который вы хотите выполнить:
Ответ 7
мой способ - написать фактическую партию (говоря "foo.bat" ), чтобы закончить работу; затем создайте еще один "start.bat":
Я считаю, что это очень полезно, когда я устанавливаю одноразовые переменные среды.
Ответ 8
Вызвать cmd в конце командного файла.
Ответ 9
. Он будет ожидать ввода пользователем и высвободит поток при нажатии клавиши.
который будет делать то же самое, если ничего из пользовательского ввода не будет отображаться и не останется в истории команд.
Ответ 10
Возможность 1: Просто создайте 2 файла .bat и напишите в первую:
Пакетный файл 2 - это файл, который не закрывается в конце. Итак, теперь, когда вы открываете партию № 1, она начнет 2-й и сам гной. Когда второй заканчивается, он не будет полностью закрываться (до тех пор, пока вы не положите выход в конце)
Возможность 2: Пакетный файл 1:
Когда второй файл заканчивается, он снова переходит к файлу 1 и выводит оставшуюся часть. С этим вы даже можете сделать обработчики ошибок. Если nr.1 сбой, он переходит в nr.2 и отображает его
Ответ 11
Я знаю, что опаздываю, но мой любимый способ:
Таким образом, пользователь не может выйти, используя ввод.
Ответ 12
Этот маленький хак просит пользователя ввести ключ и сохраняет его в переменной% exitkey% (эта переменная может быть вызвана тем, что вам нравится, хотя).
NB: пространство после '=' очень важно
Ответ 13
Ответ 14
У меня были проблемы с ответами здесь, поэтому я придумал это, что работает для меня (TM):
Ответ 15
Есть два способа сделать это зависит от варианта использования
1) Если вы хотите, чтобы приглашение Windows cmd оставалось открытым, чтобы вы могли увидеть результат выполнения и закрыть его впоследствии; использовать
2), если вы хотите, чтобы приглашение Windows cmd оставалось открытым и позволяло выполнять некоторые последующие команды; использовать
Ответ 16
Легко, добавьте cmd в свою последнюю строку летучей мыши, НО! если вы reset или очистите свой системный путь, вы должны запустить свой cmd с полным путем, например:
Например, у меня есть файл bat для reset jdk для старой версии, например:
Ответ 17
и окно закроется после нажатия клавиши. Чтобы скрыть текст, напечатанный в командной строке, введите
Читайте также: