BAT脚本:通过命令实现对注册表项的增删改查(以修改注册表项实现windows右下角任务栏时间实时显示秒数为例)

/ 548 次浏览 / 0
隐藏
换装

注册表是Windows系统中一个很重要的数据库,用于存储系统和应用程序的配置信息。通过修改某些注册表项值,可以使系统或应用程序按照我们想要的方式启动、运行、显示等等。

1、注册表项值的查询:

REG QUERY KeyName [/v [ValueName] | /ve] [/s]
[/f Data [/k] [/d] [/c] [/e]] [/t Type] [/z] [/se Separator]
[/reg:32 | /reg:64]

KeyName:注册表项,用来描述和定位注册表项值的绝对路径,形式为[\\远程主机名或IP]FullKey,如"HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced"        #大部分注册表操作都是在本地计算机上执行,远程操作注册表需要在目标主机上进行相关授权

FullKey:以RootKey\SubKey形式表示。

RootKey:可称为注册表根项,主要有[ HKLM | HKCU | HKCR | HKU | HKCC ],分别是对应HKEY_LOCAL_MACHINE、HKEY_CURRENT_USER、HKEY_CLASSES_ROOT、HKEY_USERS和HKEY_CURRENT_CONFIG;

SubKey:在选择的 RootKey 下的注册表项的全名,即目标项值除根目录外的相对路径。

ValueName:注册表项值,注册表中可操作的最小单元,主要有7种类型,REG_SZ, REG_MULTI_SZ, REG_EXPAND_SZ,REG_DWORD, REG_QWORD, REG_BINARY, REG_NONE

注册表项与注册表项值的关系

2、注册表项值的新增/修改:

REG ADD KeyName [/v ValueName | /ve] [/t Type] [/s Separator] [/d Data] [/f]
[/reg:32 | /reg:64]

/v:所选注册表项之下要添加的值名称;    #如reg add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "AutoCheckSelect" /t REG_SZ /d 00000001 /f

/ve:为注册表项添加空白值名称(默认 default);      #/ve参数自动创建空白默认值,参见上图“(默认)”注册表项值,后面不跟任何字符串 如reg add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /ve /t REG_DWORD /d 00000000 /f

/t:注册表项值类型,主要有7种类型,见“ValueName”中的定义

/s:指定一个在 REG_MULTI_SZ 数据字符串中用作分隔符的字符;如果忽略,则将 "\0" 用作分隔符

/d:要分配给添加的注册表 ValueName 的数据

/f:不用提示就强行覆盖现有注册表项

/reg:32 指定应该使用 32 位注册表视图访问的注册表项

/reg:64 指定应该使用 64 位注册表视图访问的注册表项

3、注册表项值的删除:

REG DELETE KeyName [/v ValueName | /ve | /va] [/f] [/reg:32 | /reg:64]

/va: 删除该注册表项下面的所有值

附:修改注册表项达到windows右下角任务栏时间实时显示秒数

@echo off
echo BAT脚本:windows系统右下角任务栏时间显示秒数
echo --------------------------------------
echo 执行过程监控:
echo.
echo 1、修改注册表项中...
::查询是否存在ShowSecondsInSystemClock表项
reg query "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "ShowSecondsInSystemClock"
::%errorlevel%根据查询结果判断是否存在注册表项值ShowSecondsInSystemClock
if %errorlevel%==0 (
echo 已配置完成,不需要修改.
) else (
reg add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "ShowSecondsInSystemClock" /t REG_DWORD /d 00000001
echo 注册表修改完成.
)
echo.
echo 2、重启资源管理器...
taskkill /f /im explorer.exe & start explorer.exe
::判断资源管理器是否重启成功
if %errorlevel%==0 (
echo 资源管理器重启完成.
) else (
echo 资源管理器重启失败.
)
echo.
echo 3、任务执行完毕.
echo --------------------------------------
pause

任务栏显示实时秒数示意图:

BAT脚本/注册表项下载:

(bat)windows系统右下角任务栏时间显示秒数|(注册表项)windows系统右下角任务栏时间显示秒数

备注:如果下载使用的是注册表项文件,需手动重启一下资源管理器。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注