在各种编程语言和脚本环境(如C/C++、Python、Batch批处理、PowerShell等)中,终端或控制台窗口在程序执行完毕后默认会自动关闭。
为了防止窗口“闪退”,针对不同语言和系统环境,常见的方法如下:
C/C++
在C/C++控制台程序中,最常用的方式是等待用户输入或暂停系统进程。
Python
Python脚本在Windows双击运行或命令行执行完毕后,窗口会立刻退出。
等待用户回车
input("按回车键退出...")定时间延时退出
import time
time.sleep(5) # 暂停 5 秒Windows Batch批处理(.bat/.cmd)
在编写批处理脚本时,防止脚本运行完直接关闭控制台:
pause:最标准的命令。会在命令行输出请按任意键继续. . .并挂起窗口。pause > nul:挂起窗口等待按键,但不输出任何提示文字。timeout /t 5:倒计时5秒后自动关闭(期间按任意键可提前关闭)。加上/nobreak可以禁用按键提前退出(如timeout /t 5 /nobreak)。
Windows PowerShell(.ps1)
在PowerShell脚本末尾添加:
等待按键输入
Read-Host -Prompt "按回车键退出..."暂停(类似批处理pause)
$Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")延时退出
Start-Sleep -Seconds 5Linux/Bash脚本(.sh)
在Linux或macOS终端中,脚本执行完通常不会关闭终端本身,但如果是通过图形界面双击运行终端脚本,可以加入:
read -p "按回车键退出...":等待用户输入回车。read -n 1 -s -r -p "按任意键退出...":读取任意单字符即退出,无需按回车。sleep 5:等待5秒后退出。
通用方案(不修改代码/脚本)
如果不方便修改源码或脚本本身,可以通过外层环境来阻止窗口关闭:
在CMD中
直接输入路径运行:"C:\你的程序路径\yourprogram.exe"(不需要加start,也不需要加/b)。
在PowerShell中
直接输入路径运行:C:\你的程序路径\yourprogram.exe。
如果路径中含有空格(比如C:\Program Files\...),必须加双引号时,需要在前面加一个调用运算符&,告诉PowerShell“请把后面的字符串当作命令来执行”(在PowerShell语法中,带双引号的纯文本会被当作字符串常量(String Literal)处理。PowerShell以为你只是想打印这段文本,所以它直接把这个字符串原样输出了,并没有把它当作程序去执行。):
& "C:\你的程序路径\yourprogram.exe"在“运行”窗口(Win+R)中
在Windows运行窗口(Win + R)或快捷方式中,使用/k参数(/k表示执行完命令后保持cmd运行):
cmd /k "C:\你的程序路径\yourprogram.exe"