Windows Fast Startup (快速启动) 管理脚本
Windows Fast Startup(快速启动)是 Windows 8 引入并在 Windows 10 中继续使用的一项功能,它结合了传统关机和休眠的特性来加快系统启动速度。
它的工作原理是在Windows关机时保存系统内核会话和驱动程序状态到休眠文件(hiberfil.sys),下次启动时直接从该文件恢复,实现缩短启动时间的效果。但是这样也会导致额外的系统盘空间被休眠文件占用,特别是内存容量较大的情况。
考虑到笔记本配的 NVMe SSD 容量有限,权衡之下我决定还是关闭 Fast Startup 功能以节省空间,利用ssd 本身的高性能读写加速开机速度。
参考脚本
以下脚本提供了一个便捷的方式开启或关闭Fast startup 功能,将代码复制保存为 .bat 文件后用管理员权限运行即可。
@echo off
:: ====================================================================
:: Script: Turn On/Off Fast Startup for Windows 10
:: Description: Manages Windows Fast Startup feature via registry
:: Requirements: Administrator privileges
:: ====================================================================
title Turn On/Off Fast Startup in Windows
mode con cols=70 lines=8
color 17
:: Check for administrator privileges
net session >nul 2>&1
if %errorlevel% neq 0 (
echo.
echo 错误:此脚本需要管理员权限。
echo 请右键点击文件并选择"以管理员身份运行"。
echo.
echo 按任意键退出...
pause >nul
exit /b 1
)
:: Query current Fast Startup status
for /f "tokens=3" %%v in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Power" /v "HiberbootEnabled" 2^>nul') do set "CurrentStatus=%%v"
:: Handle case where registry key doesn't exist
if not defined CurrentStatus (
echo.
echo 警告:未找到快速启动注册表项。
echo 这可能表示您的系统不支持快速启动功能。
echo.
echo 按任意键退出...
pause >nul
exit /b 1
)
:: Display current status and options
echo.
if "%CurrentStatus%"=="0x0" (
echo 快速启动当前状态:已禁用
echo.
echo 是否要启用快速启动?
set "Action=enable"
set "RegValue=1"
) else (
echo 快速启动当前状态:已启用
echo.
echo 是否要禁用快速启动?
set "Action=disable"
set "RegValue=0"
)
echo.
if "%Action%"=="enable" (
echo 按 [Y] 启用快速启动
) else (
echo 按 [Y] 禁用快速启动
)
echo 按 [N] 退出
echo.
choice /c YN /m "请选择" /n
if %errorlevel%==2 exit /b 0
:: Apply the change
echo.
echo 正在应用更改...
if "%Action%"=="enable" (
:: Enable hibernation first (required for Fast Startup)
powercfg -h on >nul 2>&1
if %errorlevel% neq 0 (
echo 错误:启用休眠功能失败。
goto :error_exit
)
)
:: Update registry
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Power" /v HiberbootEnabled /t REG_DWORD /d %RegValue% /f >nul 2>&1
if %errorlevel% neq 0 (
echo 错误:更新注册表失败。
goto :error_exit
)
:: Success message
echo.
if "%Action%"=="enable" (
echo 成功:快速启动已启用。
) else (
echo 成功:快速启动已禁用。
)
echo.
if "%Action%"=="disable" (
echo 提示:您可以禁用休眠功能来节省磁盘空间:
pausechnulercfg -h off
echo.
)
echo 按任意键退出...
pause >nul
exit /b 0
:error_exit
echo.
echo 操作失败。请尝试重新运行脚本。
echo.
echo 按任意键退出...
pause >nul
exit /b 1