如何验证regedit查询请求的值?
REG QUERY "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Power" /V "HiberbootEnabled"
IF result == 1 goto turoff
IF result == 0 goto turnon发布于 2018-11-11 11:42:14
如果您只是想在1和0之前切换值,那么类似的内容可能对您有用(只要您拥有访问/修改值数据的适当权限)。
@Echo Off
Set "DWord="
For /F "Tokens=3" %%A In ('
Reg Query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Power" /V "HiberbootEnabled" 2^>Nul
') Do 2>Nul Set /A DWord=1-%%A
If Defined DWord Reg Add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Power" /V "HiberbootEnabled" /T REG_DWORD /D %DWord% /F>Nul发布于 2018-11-11 03:39:53
发布于 2018-11-11 12:40:59
在万维网上可以找到很多关于如何更改Windows 8和更高版本的快速启动设置的文章。
下面是另一个批次文件的注释解决方案,它必须以管理员的身份运行
@echo off
setlocal EnableExtensions DisableDelayedExpansion
for /F "skip=2 tokens=1-3" %%A in ('%SystemRoot%\System32\reg.exe query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Power" /v "HiberBootEnabled" 2^>nul') do (
if /I "%%A" == "HiberBootEnabled" set /A "HiberBootEnabled=%%C" & goto EvaluateValue
)
for /F "delims=" %%I in ('ver') do set "WindowsVersion=%%I"
echo Fast startup (hibernate boot) setting not found in Windows registry.
echo/
echo %WindowsVersion% does not support fast startup.
goto EndBatch
:EvaluateValue
rem Toggle the hibernate boot setting.
if %HiberBootEnabled% == 0 (set "HiberBootEnabled=1") else set "HiberBootEnabled=0"
rem Change the hibernate boot setting in registry if batch file
rem is executed with elevated permissions of a local administrator.
%SystemRoot%\System32\reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Power" /f /v "HiberBootEnabled" /t REG_DWORD /d %HiberBootEnabled% >nul
if errorlevel 1 goto ErrorAddValue
if %HiberBootEnabled% == 0 (set "HiberBootEnabled=OFF") else set "HiberBootEnabled=ON"
echo Fast startup (hibernate boot) setting toggled %HiberBootEnabled%.
goto EndBatch
:ErrorAddValue
echo/
echo %~nx0 must be run as administrator to toggle the
echo fast startup (hibernate boot) setting in Windows registry.
:EndBatch
echo/
pause
endlocal此批处理文件设计用于在Windows / Windows 2003和所有较新的Windows版本上执行。如果Windows由于不支持快速启动而没有双单词注册表值HiberBootEnabled,则不会进行任何操作。如果在执行批处理文件时没有提升本地管理员对HKEY_LOCAL_MACHINE注册表单元的写入访问所需的权限,则它也不会执行任何操作。
这里还有一个优化版本,它使用简单而出色的方法从1中减去双单词的当前值来切换它,就像Compo在他的回答中发布的那样。
@echo off
setlocal EnableExtensions DisableDelayedExpansion
for /F "skip=2 tokens=1-3" %%A in ('%SystemRoot%\System32\reg.exe query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Power" /v "HiberBootEnabled" 2^>nul') do (
if /I "%%A" == "HiberBootEnabled" set /A "HiberBootEnabled=1-%%C" & goto ToggleValue
)
for /F "delims=" %%I in ('ver') do set "WindowsVersion=%%I"
echo Fast startup (hibernate boot) setting not found in Windows registry.
echo/
echo %WindowsVersion% does not support fast startup.
goto EndBatch
:ToggleValue
rem Change the hibernate boot setting in registry if batch file
rem is executed with elevated permissions of a local administrator.
%SystemRoot%\System32\reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Power" /f /v "HiberBootEnabled" /t REG_DWORD /d %HiberBootEnabled% >nul
if errorlevel 1 goto ErrorAddValue
if %HiberBootEnabled% == 0 (set "HiberBootEnabled=OFF") else set "HiberBootEnabled=ON"
echo Fast startup (hibernate boot) setting toggled %HiberBootEnabled%.
goto EndBatch
:ErrorAddValue
echo/
echo %~nx0 must be run as administrator to toggle
echo the hibernate boot setting in Windows registry.
:EndBatch
echo/
pause
endlocal根据LotPings的建议,更好的办法是作为第五行
if /I "%%A" == "HiberBootEnabled" set /A "HiberBootEnabled=!%%C" & goto ToggleValue这一行将HiberBootEnabled设置为0,即使当前值更大,1也是如此。
要了解所使用的命令及其工作方式,请打开命令提示符窗口,在那里执行以下命令,并非常仔细地读取为每个命令显示的所有帮助页。
call /? ..解释%~nx0 (扩展名为批处理文件)echo /?endlocal /?for /?goto /?if /?pause /?reg /?reg add /?reg query /?rem /?set /?setlocal /?https://stackoverflow.com/questions/53243807
复制相似问题