Командная строка закрывается после выполнения — почему и что делать
Во многих инструкциях на сайте для выполнения действий предлагается использовать команды в командной строке, в некоторых случаях — bat файл. Один из частых комментариев к таким материалам: командная строка сразу закрывается и нельзя ничего успеть увидеть.
В этой статье подробно о том, почему командная строка сразу закрывается, что делать, чтобы она не закрывалась применительно к Windows 11 и Windows 10 (актуально и для предыдущих систем), а также дополнительная информация на тему. Внимание: если командная строка открывается сама, на эту тему есть отдельная инструкция Что делать, если само открывается и закрывается окно командной строки в Windows 11 и 10.
Почему командная строка закрывается и что делать, чтобы этого не происходило
Рассмотрим два случая, когда командная строка закрывается:
- После выполнения введённой команды
- После выполнения bat-файла
В первом случае почти всегда причиной является ввод команды не в командную строку, а в диалоговое окно «Выполнить», которое некоторые пользователи считают командной строкой, хотя это не так. Подробнее о том, как именно работают указанные системные элементы:
- Если вводить команду в окно «Выполнить» (вызываемое клавишами Win+R, либо через правый клик по кнопке «Пуск» в случае Windows 11 и 10), окно командной строки откроется и закроется сразу после выполнения, если дальнейший ввод пользователя не требуется.
- Если запустить непосредственно командную строку (Как открыть командную строку, Запуск командной строки от имени администратора), и ввести команду уже в ней, автоматическое закрытие окна происходить не будет, и вы увидите, что именно выдает команда в результате выполнения.
В случае выполнения bat-файла, если команды в нём не требуют ввода пользователя и не содержат команд паузы до нажатия клавиши пользователем, то при запуске (простым двойным кликом из расположения файла) и успешном выполнении, окно командной строки будет автоматически закрыто.
Если вы хотите иметь возможность прочитать ход выполнения и результат работы bat-файла, вы можете:
- Открыть командную строку (как во втором пункте выше), указать путь к bat-файлу и нажать Enter. Он будет запущен и выполнен, но командная строка не будет закрыта после выполнения.
- В конце файла добавить команду PAUSE (сделать это можно в любом текстовом редакторе, подробнее: Как создать bat файл в Windows). В этом случае после выполнения любым способом окно не закроется пока вы не нажмете любую клавишу.
Иногда вопрос о закрытии командной строки относится к другой ситуации: без каких-либо действий пользователя, обычно при входе в систему, но иногда и в произвольные моменты времени, само открывается окно командной строки и тут же закрывается, раньше, чем вы успеваете что-либо увидеть. В этом случае возможны следующие варианты:
- Если это происходит не часто, вероятнее всего речь идёт о простой работе Windows: система может выполнять отдельные действия по завершении установки обновлений, обслуживанию и первоначальной настройке системы после установки инициируя запуск команд через командную строку.
- В некоторых случаях завершение установки или удаления программ (в том числе после перезагрузки компьютера) выполняется с помощью командной строки — в этом сценарии появление окна командной строки также не будет регулярным.
- При постоянном открытии и закрытии окон командной строки при включении компьютера или во время работы, следует проверить программы в автозагрузке и планировщике заданий: если там запускается cmd.exe с какими-либо параметрами, постараться разобраться, что именно, возможно — удалить из автозагрузки либо отключить задание в планировщике заданий. Чуть более подробно о процессе поиска в статье про ситуацию, когда сам открывается браузер с рекламой (даже если у вас это не происходит, логика та же). Также может иметь смысл использовать средства удаления вредоносных программ для поиска и удаления нежелательного ПО с компьютера.
Видео
When we execute a batch file, the Command Prompt opens and closes automatically after processing the batch file. Sometimes, the command is executed so quickly that it seems like the Command Prompt closes immediately after opening the batch (BAT) file. This prevents users from performing other tasks after the execution of the batch file or viewing the status of the commands they executed in the CMD. If you want the Command prompt window to remain open after processing the batch file, this post may help you.
You can prevent or stop Command Prompt from closing immediately after opening or executing a batch file in the following three ways:
- By using the Pause command.
- By using the cmd /k command.
- By editing the Registry keys.
Let’s see these methods one by one.
1] Prevent Command Prompt from closing immediately by using the Pause command
The Pause command prevents the Command Prompt from closing after processing the batch file.
Follow the steps below:
- Right-click on the batch file and select Edit. This will open the Notepad.
- Type Pause at the end of the command that you have typed in the batch file.
- Save the file.
Now, when you open the batch file, the Command Prompt will not close automatically after processing the file. Instead, it will display a message “Press any key to continue…” When you press any key, the Command Prompt will close.
The Pause command will only let you see how the commands are executed. If you want the Command Prompt to remain open so that you can execute other commands on the same window, you have to use the next method.
Read: Command Prompt keeps crashing
2] Prevent Command Prompt from closing by using the cmd /k command
The cmd /k
command lets you execute new commands after the processing of the batch file without closing the Command Prompt. Right-click on the batch file and type cmd /k
at the end of the batch file. After that, save it.
3] Editing the Registry key to stop Command Prompt from closing
The above two methods stop Command Prompt from closing immediately after processing the batch file. But the only downside of these two methods is you have to use those commands in every batch file. If you already have many batch files, you have to edit all of them.
You can skip editing the batch files by modifying the Registry keys. We have explained the procedure below. Before you proceed, we recommend you create a backup of Registry.
1] Launch the Run command box. Type regedit
and click OK. Click Yes if you get a UAC prompt.
2] In the Registry Editor, navigate to the following paths:
HKEY_CLASSES_ROOT\batfile\shell\open\command HKEY_CLASSES_ROOT\cmdfile\shell\open\command
You will find a “(Default)” value on the right side. Double click on that value and change its Value data to cmd.exe /k "%1" %*
. Click OK to save the changes you made. Close the Registry Editor when you are done.
If after trying the above three methods, the Command prompt is still closing automatically on your system, we suggest you try the following fixes:
- Run SFC scan.
- Troubleshoot in a clean boot state.
- Reset your PC.
1] Run SFC scan
The System File Checker (SFC) is a utility from Microsoft that scans the system files for errors or corruptions and repairs the corrupted files. The issue that you are experiencing may be due to corrupted system files. Hence, running an SFC scan may fix the problem.
2] Troubleshoot in a clean boot state
Sometimes, a faulty program creates several issues on a Windows PC. You can identify the faulty program or software by troubleshooting in a clean boot state. If you find a program the culprit of the problem, consider uninstalling it.
3] Reset your PC
If nothing helps you fix the error, consider resetting your PC.
Hope this helps.
How do I run an EXE from Command Prompt?
To run an EXE from Command Prompt, follow the steps below:
1] Launch the Command Prompt.
2] Type cd "file path"
without quotations and hit Enter. The file path is the installation location of the EXE file. To know the file location, right-click on the shortcut icon of the program that you want to open via CMD and select Open file location. Now, click on the address bar of the File Explorer and copy the entire path. You can paste this entire path directly in the Command Prompt by using the Ctrl + V keys.
3] Now, type start "filename.exe"
without quotations and press Enter.
This will launch the EXE file.
How do I keep a command window open in a batch file?
You can use either Pause or cmd /k commands to keep the command window open in a batch file. If you want, you can also make this action permanent by modifying some keys in the Registry. We have explained all these three methods above in this article.
Related: Command Prompt cmd.exe keeps popping up on Startup.
Реализация DI в PHP
Jason-Webb 13.05.2025
Когда я начинал писать свой первый крупный PHP-проект, моя архитектура напоминала запутаный клубок спагетти. Классы создавали другие классы внутри себя, зависимости жостко прописывались в коде, а о. . .
Обработка изображений в реальном времени на C# с OpenCV
stackOverflow 13.05.2025
Объединение библиотеки компьютерного зрения OpenCV с современным языком программирования C# создаёт симбиоз, который открывает доступ к впечатляющему набору возможностей. Ключевое преимущество этого. . .
POCO, ACE, Loki и другие продвинутые C++ библиотеки
NullReferenced 13.05.2025
В C++ разработки существует такое обилие библиотек, что порой кажется, будто ты заблудился в дремучем лесу. И среди этого многообразия POCO (Portable Components) – как маяк для тех, кто ищет. . .
Паттерны проектирования GoF на C#
UnmanagedCoder 13.05.2025
Вы наверняка сталкивались с ситуациями, когда код разрастается до неприличных размеров, а его поддержка становится настоящим испытанием. Именно в такие моменты на помощь приходят паттерны Gang of. . .
Создаем CLI приложение на Python с Prompt Toolkit
py-thonny 13.05.2025
Современные командные интерфейсы давно перестали быть черно-белыми текстовыми программами, которые многие помнят по старым операционным системам. CLI сегодня – это мощные, интуитивные и даже. . .
Конвейеры ETL с Apache Airflow и Python
AI_Generated 13.05.2025
ETL-конвейеры – это набор процессов, отвечающих за извлечение данных из различных источников (Extract), их преобразование в нужный формат (Transform) и загрузку в целевое хранилище (Load). . . .
Выполнение асинхронных задач в Python с asyncio
py-thonny 12.05.2025
Современный мир программирования похож на оживлённый мегаполис – тысячи процессов одновременно требуют внимания, ресурсов и времени. В этих джунглях операций возникают ситуации, когда программа. . .
Работа с gRPC сервисами на C#
UnmanagedCoder 12.05.2025
gRPC (Google Remote Procedure Call) — открытый высокопроизводительный RPC-фреймворк, изначально разработанный компанией Google. Он отличается от традиционых REST-сервисов как минимум тем, что. . .
CQRS (Command Query Responsibility Segregation) на Java
Javaican 12.05.2025
CQRS — Command Query Responsibility Segregation, или разделение ответственности команд и запросов. Суть этого архитектурного паттерна проста: операции чтения данных (запросы) отделяются от операций. . .
Шаблоны и приёмы реализации DDD на C#
stackOverflow 12.05.2025
Когда я впервые погрузился в мир Domain-Driven Design, мне показалось, что это очередная модная методология, которая скоро канет в лету. Однако годы практики убедили меня в обратном. DDD — не просто. . .
You boot your Windows computer or wake it up from hibernation and notice the CMD or the Command Prompt flash for a fraction of a second. Now you are wondering what was that. You didn’t have the CMD open last time nor did you open or close it now so what’s happening here? Why is Command Prompt opening and then closing again automatically? Allow us to explain along with some solutions.
1. Scheduled Office Task Is Running
This is probably the most common reason and where you should begin looking. A scheduled task for Microsoft Office might be running in the background leading to CMD flash momentarily on the screen. Here’s how you can check that:
1. Press the Windows icon, search for Task Scheduler, and open it.
Some users reported they were unable to open the Task Scheduler this way. In that case, search for and open MMC (Microsoft Management Console). Click on File > Add/Remove Snap-in. You will see several options. Find and open Task Scheduler from here.
2. From the left sidebar, drill down to the folder structure – Task Scheduler Library > Microsoft > Office. In the right window pane, right-click on OfficeBackgroundTaskHandlerRegistration and Disable it.
2. Keep CMD Open
The problem when the Command Prompt opens and closes quickly is that before you can see what’s happening, it disappears. A Microsoft user found a solution where you can keep the CMD open so you know what is happening.
1. Open elevated Command Prompt. To do that, search for CMD and click on Run as administrator option.
2. Copy-paste the command below and press Enter to run it.
cmd /k netstat
You can close the CMD now.
3. Automatic Maintenance Tasks
Windows runs several maintenance tasks in the background like updating OS, updating Microsoft Store apps, time and date, weather, and so on. These tasks run in the background, however, CMD may appear briefly and then disappear when one of these tasks runs. You can check a list of such tasks in PowerShell.
1. Open PowerShell with admin rights from the Start menu.
2. Simply copy-paste the command below to see a list of maintenance tasks.
Get-ScheduledTask | ? {$_.Settings.MaintenanceSettings}
You will see the names of the tasks, the path to the file or app name, and whether it is enabled or disabled.
4. Change Name of CMD.exe File
CMD is an executable file. Renaming this file after creating a copy has helped fix the problem for many users.
1. Drill down to the folder structure below and find the CMD app in the list.
Local Disk (C:) -> Windows -> System32
2. Now simply create a copy of the CMD file using the Ctrl+C and Ctrl+V keyboard shortcuts. Rename the original to something else like CMD-old and then rename the copy to CMD. We recommend you backup the original (now renamed to cmd.old) to a pen drive just in case you need to restore it.
5. Scan for Virus, Malware
It is possible that hackers have gained control or access to your Windows PC and are running commands. Scary situation but not unlikely these days.
Run Defender or 3rd-party antivirus software that you may have installed. Don’t select quick scan but instead perform a full scan. It may take some time but you don’t want to skim on this.
1. To run Defender, open Windows Security > Virus & threat protection.
2. Click on Scan options.
3. Select Full scan and click on Scan now button below.
6. Run Microsoft Safety Scanner
Safety Scanner, unlike Defender and other security features in Windows Security, doesn’t come preinstalled. You have to download it fresh every time you want to run it. That’s because it is updated every week.
Simply Download Microsoft Safety Scanner and double-click to open and run it. Use the computer normally or reboot it once to check if Command Prompt opens and closes automatically again.
7. Run Malwarebytes
This is the last time we will ask you to run a threat scanner in this article. Promise. While Defender is good at protecting Windows PCs from viruses, malware is a different beast. Download and run the free version of Malwarebytes. Again, do a full scan.
Download Malwarebytes
8. Run SFC
SFC or System File Checker will check the integrity of the system files that are critical for running the Windows OS.
1. Open CMD with admin rights again as we did above in section 2.
2. Copy-paste the commands below, one at a time, and in the same order they are mentioned.
DISM.exe /Online /Cleanup-image /Restorehealth
sfc /scannow
It may take some time for both the commands to run its course. You will see 100% once the SFC scan is complete.
9. Check Startup Folders
Now that we have ruled out that the PC is not hacked or compromised in any way, let’s move on to startup folders. It contains a list of all the apps that are scheduled to run or launch when Windows computer is booted for the first time. One of these apps may be using CMD in the background.
Pro Tip: Disallowing some apps from running on startup can improve the time it takes to start the computer and improve performance as fewer apps are running in the background.
1. Press Windows key+R to open the Run prompt and type the command below and hit Enter.
shell:startup
2. A folder will open. You can delete any CMD or Command Prompt related entries here. In our case, the folder is empty but it differs from PC to PC as each one is configured differently.
10. Check Startup Apps
Some apps run automatically in the background even when you are not using them actively or haven’t even opened them. That’s because they are programmed to open when you start or restart the PC. This also makes the computer slow as unnecessary resources are consumed in the background to run these apps.
1. Press Ctrl+Shift+Esc keys on the keyboard to open the Task Manager.
2. Go to Startup apps from the left sidebar. You will see a list of apps. Check the Status column. If it is enabled, the app will launch in the background when Windows starts. If you see any entry related to CMD, right-click on it and select Disable.
11. Check Using Autoruns
Autoruns is a utility tool from Microsoft that will show you a list of all the tasks and processes that run automatically without user input. A good way to find hidden or rogue apps that are running in the background without your knowledge. You will need to download it separately though. The link is below.
For example, it shows that we have NZXT Cam, a gaming app running in the background and is scheduled to run automatically. But it comes in handy only when you are gaming so it’s a waste of resources. A good way to do some house cleaning and check all the autoruns.
Download Autoruns
12. Use PowerShell or Terminal Instead
Command Prompt has been succeeded by PowerShell and now, Terminal. These two command utilities do everything that the humble CMD does and then even more. The UI is also more user-friendly with multiple tabs, color-coded commands/results, and more.
We have an in-depth guide on how these three command utilities differ and another good source on how to use Terminal best.
13. Clean Boot
You can perform a clean boot to find out if an app is causing this. Sometimes, contradictory apps cause all sorts of problems including the one you are facing where CMD opens and then closes automatically.
Take Command
More often than not, the Command Prompt opening and closing automatically on its own is a task that’s running in the background. You don’t have to worry if it happens once or twice and then doesn’t. If it happens again, make sure your computer is not infected. Thoroughly scan the system as we described above.
Gaurav Bidasaria
Gaurav is an editor here at TechWiser but also contributes as a writer. He has more than 10 years of experience as a writer and has written how-to guides, comparisons, listicles, and in-depth explainers on Windows, Android, web, and cloud apps, and the Apple ecosystem.
He loves tinkering with new gadgets and learning about new happenings in the tech world.
He has previously worked on Guiding Tech, Make Tech Easier, and other prominent tech blogs and has over 1000+ articles that have been read over 50 million times.
Обновлено: 07.01.2022. Опубликовал: Админ, на
Содержание:
- Почему сразу после запуска команды окно командной строки быстро закрывается и что предпринять, чтобы помешать этому
- Самопроизвольное открытие и закрытие командной строки
- Вопросы и ответы: 1
Многие компьютерные проблемы решаются с использованием интерпретатора командной строки – этот архаизм, доставшийся Windows от предшественницы, операционной системы MS-DOS, оказался настолько живучим, что и в эру тотального графического интерфейса находит частое применение.
Существует два сценария использования командной строки:
- вы запускаете терминальное окно, и уже в нём вводите необходимые команды, завершая работу командой exit;
- вы используете готовый файл (cmd или bat). В этом случае командная строка запускается автоматически и так же самостоятельно закрывается после того, как все команды скрипта отработали.
Последний вариант весьма удобен с пользовательской точки зрения, поскольку минимизирует его усилия. Но у него имеется один существенный недостаток: зачастую команды отрабатываются столь быстро, что вы не успеваете рассмотреть результаты работы батника. А в большинстве случаев это и полезно, и нужно.
Сегодня мы рассмотрим все возможные способы, позволяющие предотвратить такой не совсем удовлетворительный сценарий.
Почему сразу после запуска команды окно командной строки быстро закрывается и что предпринять, чтобы помешать этому
Как мы уже отмечали, правильный способ использования командной строки – запуск интерпретатора командой cmd из консоли «Выполнить», и последующий ввод команд вручную.
Увы, многочисленные инструкции, гуляющие в сети, игнорируют эту рекомендацию и советуют пользователям вводить нужные текстовые команды непосредственно в панели «Выполнить». И наивные пользователи свято верят в то, что используют командную строку правильно. На самом деле это не так. После ввода команды в окно «Выполнить» (которое в Windows 10/11 запускается нажатием ПКМ по кнопке «Пуск», а в версиях ОС ниже – использованием комбинации Win+R) и нажатия Enter действительно происходит запуск командной строки и отработка самой команды. Но если результат работы введённой команды таков, что не требует никаких действий от пользователя, окно КС после этого сразу закроется. И это происходит в абсолютном большинстве случаев, даже если в ходе выполнения команды нужно нажимать какие-то клавиши.
Точно такой же порядок действий получится при запуске bat-файла с единственным отличием: в таком батнике можно прописать последовательное выполнение любого количества команд. Но результат будет аналогичным: если самими командами не предусмотрено наличие каких-то пауз, то после их выполнения окно с чёрным экраном сразу закроется. Независимо от того, успели вы заметить, что произошло, или нет.
При ручном открытии КС сначала запустится окно терминала, в котором нужно ввести команду или набор команд. В этом случае командная строка после выполнения этих команд не закрывается. То есть у вас появится возможность внимательно изучить результаты отработки скрипта или команды, и только после этого закрыть терминальное окно, набрав exit и нажав Enter (или просто щелкнув мышкой по крестику в правом верхнем углу окна терминала).
Но что делать, если инструкция требует запуска bat-файла (двойным кликом по нему), а вам нужно, чтобы после отработки сценария окно не закрывалось, поскольку там будут отражены результаты работы скрипта?
Самый очевидный способ – сначала запустить интерпретатор командной строки, а уже в нём указать полный путь к bat-файлу, после чего нажать Enter. Если вы не ошиблись с указанием этого пути (в конце обязательно должно стоять наименование файла с его расширением), что случается достаточно часто, то результат вас удовлетворит: команда будет выполнена, а окно терминала после этого не закроется.
Основная сложность здесь в том и заключается, что нужно знать, в какой папке находится нужный файл, и правильно ввести этот путь.
Есть и другой способ, хотя и он потребует от вас некоторых нетривиальных действий, а конкретнее – правки этого батника. Делается это посредством запуска любого текстового редактора (например, Блокнота). От вас потребуется в конце файла добавить строку и ввести команду pause.
Команда pause приостанавливает выполнение последовательности команд с выводом в окно терминала текста «Для продолжения нажмите любую клавишу…». Таких команд может быть много, в результате продолжение выполнения скрипта вплоть до его закрытия будет происходить только после нажатия вами какой-нибудь клавиши.
Такой же результат получится, если в конце батника добавить строку cmd /k.
При этом вы как бы перезапускаете КС, то есть результаты выполнения предыдущих команд будут стёрты. В этом плане использование pause будет предпочтительнее.
Самопроизвольное открытие и закрытие командной строки
Когда вы являетесь инициатором запуска КС, что делать, чтобы она не закрывалась, мы уже рассмотрели. Но наверняка каждый из вас сталкивался с ситуацией, когда пресловутое чёрное окно открывается и закрывается без вашего ведома, а что в нём происходило, заметить практически невозможно. Чаще всего такие запуски случаются во время старта операционной системы, но иногда они происходят в самый неожиданный момент без видимых причин (хотя на самом деле причины обязательно имеются, например, такой сценарий прописан в одном из фоновых процессов).
Если командная строка самопроизвольно открывается и закрывается лишь изредка, то, скорее всего, это связано с работой операционной системы, и волноваться по этому поводу не следует. Подобная активность часто проявляется при выполнении обновлений Windows или в результате настройки работы её служб, требующих для завершения процесса запуска команд в режиме интерпретатора командной строки.
Такой же результат может быть следствием процедуры инсталляции или удаления пользователем компьютера некоторых программ, часто – после перезагрузки системы.
Если командная строка открывается и закрывается часто, почему это происходит, нужно обязательно выяснить.
Для начала следует проверить, какие программы присутствуют в автозагрузке, не мешает проинспектировать и планировщик заданий. Если вы найдёте строку, начинающуюся с cmd.exe с указанием параметров после этого текста, то это, скорее всего, и есть причина запуска КС. Чтобы убедиться в этом, отключите строку в Автозагрузке, убрав справа галочку, и сделайте то же самое в Планировщике. Если запуски командной строки прекратятся, а работа операционной системы останется стабильной, подозрительные строки можно удалить навсегда.
Если это не поможет, стоить запустить полное сканирование компьютера антивирусной программой, встроенной или установленной вами. Не исключено, что наблюдаемые запуски командной строки – результат работы вируса.
Можно также попробовать автоматизировать процесс, чтобы командная строка, независимо от того, вы её запустили, операционная система или вирус, не закрывалась в конце. Для этого потребуется внести определённые правки в реестр – то есть способ рекомендуется только для опытных пользователей.
Итак, запускаем командой regedit редактор системного реестра и переходим по пути
HKCR\batfile\shell\open\command.
По умолчанию для этой ветки установлен единственный параметр со значением
"%1" %*
Его нужно заменить на
cmd.exe /k "%1" %*
Точно такие же манипуляции производим с веткой HKCR\cmdfile\shell\open\command.
В результате любой запуск командной строки не будет завершаться без вашего согласия, если только в скрипте не присутствуют команды exit.