批量自动应答"y"注册表项值是否存在



我真的不习惯使用批。。。所以我遇到了一个问题:我想添加一些注册表项值,但它会提示:

"key alreday exists, overwrite it (yes/no) ?"

所以我想做if key value exists echo y and press <enter>

else reg ADD值。。。。

事实上,我完全沉浸在编写批处理文件中,我尝试过这个,但我不知道如何制作IF语句。。。更不用说如何将提示答案自动化了!

@echo off
reg query HKLMSOFTWAREWow6432NodeNtreevPangYa_Th /v Patcher || REG ADD HKLMSOFTWAREWow6432NodeNtreevPangYa_Th /v Patcher /t REG_EXPAND_SZ /d "Updater_Launcher_ENG.exe"
REG query HKLMSOFTWAREWow6432NodeNtreevPangYa_Th /v PatchNum /t REG_EXPAND_SZ /d "184" || REG ADD HKLMSOFTWAREWow6432NodeNtreevPangYa_Th /v PatchNum /t REG_EXPAND_SZ /d "184"
REG query HKLMSOFTWAREWow6432NodeNtreevPangYa_Th /v IntegratedPak /t REG_EXPAND_SZ /d "projectg500+.pak" || REG ADD HKLMSOFTWAREWow6432NodeNtreevPangYa_Th /v IntegratedPak /t REG_EXPAND_SZ /d "projectg500+.pak"
REG query HKLMSOFTWAREWow6432NodeNtreevPangYa_Th /v Ver /t REG_EXPAND_SZ /d "TH.R4.584.04" || REG ADD HKLMSOFTWAREWow6432NodeNtreevPangYa_Th /v Ver /t REG_EXPAND_SZ /d "TH.R4.584.04"
REG query HKLMSOFTWAREWow6432NodeNtreevPangYa_Th /v Launcher Version /t REG_EXPAND_SZ /d "v3.1" || REG ADD HKLMSOFTWAREWow6432NodeNtreevPangYa_Th /v Launcher Version /t REG_EXPAND_SZ /d "v3.1"
REG query HKLMSOFTWAREWow6432NodeNtreevPangYa_Th /v Install_Dir /t REG_EXPAND_SZ /d "C:Pangya eXtremV2" || REG ADD HKLMSOFTWAREWow6432NodeNtreevPangYa_Th /v Install_Dir /t REG_EXPAND_SZ /d "C:Pangya eXtremV2"
REG query HKLMSOFTWAREWow6432NodeNtreevPangYa_Th /v Argument /t REG_EXPAND_SZ /d "not_used" || REG ADD HKLMSOFTWAREWow6432NodeNtreevPangYa_Th /v Argument /t REG_EXPAND_SZ /d "not_used"
REG query HKLMSOFTWAREWow6432NodeNtreevPangYa_Th /v Launcher Version /t REG_EXPAND_SZ /d "v3.1" || REG ADD HKLMSOFTWAREWow6432NodeNtreevPangYa_Th /v Launcher Version /t REG_EXPAND_SZ /d "v3.1"

正如您在后续回答中所提到的,您应该将/F选项与Add一起使用,以强制覆盖现有的值数据。请打开命令提示符窗口,键入reg /?,然后按ENTER键读取用法信息。

然而,你发布的内容还有其他几个问题,所以我用两种可能的格式为你重写了整个内容,(因为我不确定你的真实意图(

请注意,我对您发布的内容进行了几次更合适的更改,请不要修改我发布的任何内容,它是使用正确的语法、键、值和数据编写的。还请记住,此代码正在添加到Windows注册表的受保护区域,因此您必须以提升权限或具有所需权限的用户身份运行此脚本。


如果您只想添加所有注册表项,并且已经有一个名为Patcher:的现有值,我建议您执行此任务

@Echo Off
SetLocal EnableExtensions
Set "Key=HKLMSOFTWARENtreevPangYa_Th"
Set "Reg=%SystemRoot%System32reg.exe"
%Reg% Query "%Key%" /Reg:32 /F "Patcher" /V 1> NUL 2>&1 && (
%Reg% Add "%Key%" /Reg:32 /V "Argument" /D "not_used" /F 1> NUL
%Reg% Add "%Key%" /Reg:32 /V "Install_Dir" /D ""C:Pangya eXtremV2"" /F 1> NUL
%Reg% Add "%Key%" /Reg:32 /V "IntegratedPak" /D "projectg500+.pak" /F 1> NUL
%Reg% Add "%Key%" /Reg:32 /V "Launcher Version" /D "v3.1" /F 1> NUL
%Reg% Add "%Key%" /Reg:32 /V "Patcher" /D "Updater_Launcher_ENG.exe" /F 1> NUL
%Reg% Add "%Key%" /Reg:32 /V "PatchNum" /D "184" /F 1> NUL
%Reg% Add "%Key%" /Reg:32 /V "Ver" /D "TH.R4.584.04" /F 1> NUL
)

如果你只想添加所有数据,而不考虑任何现有值,那么你只需要这些:

@Echo Off
SetLocal EnableExtensions
Set "Key=HKLMSOFTWARENtreevPangYa_Th"
Set "Reg=%SystemRoot%System32reg.exe"
%Reg% Add "%Key%" /Reg:32 /V "Argument" /D "not_used" /F 1> NUL
%Reg% Add "%Key%" /Reg:32 /V "Install_Dir" /D ""C:Pangya eXtremV2"" /F 1> NUL
%Reg% Add "%Key%" /Reg:32 /V "IntegratedPak" /D "projectg500+.pak" /F 1> NUL
%Reg% Add "%Key%" /Reg:32 /V "Launcher Version" /D "v3.1" /F 1> NUL
%Reg% Add "%Key%" /Reg:32 /V "Patcher" /D "Updater_Launcher_ENG.exe" /F 1> NUL
%Reg% Add "%Key%" /Reg:32 /V "PatchNum" /D "184" /F 1> NUL
%Reg% Add "%Key%" /Reg:32 /V "Ver" /D "TH.R4.584.04" /F 1> NUL

好的,在尝试了这么多复杂的解决方案后,我在文档中发现了如何在没有提示的情况下覆盖。。。

/f  Adds the registry entry without prompting for confirmation.

所以没关系,我有这个工作良好:

@echo off
REG ADD HKLMSOFTWAREWow6432NodeNtreevPangYa_Th /v Patcher /t REG_EXPAND_SZ /d "Updater_Launcher_ENG.exe" /f
REG ADD HKLMSOFTWAREWow6432NodeNtreevPangYa_Th /v PatchNum /t REG_EXPAND_SZ /d "184" /f
REG ADD HKLMSOFTWAREWow6432NodeNtreevPangYa_Th /v IntegratedPak /t REG_EXPAND_SZ /d "projectg500+.pak" /f
REG ADD HKLMSOFTWAREWow6432NodeNtreevPangYa_Th /v Ver /t REG_EXPAND_SZ /d "TH.R4.584.04" /f
REG ADD HKLMSOFTWAREWow6432NodeNtreevPangYa_Th /v Launcher Version /t REG_EXPAND_SZ /d "v3.1" /f
REG ADD HKLMSOFTWAREWow6432NodeNtreevPangYa_Th /v Install_Dir /t REG_EXPAND_SZ /d "C:Pangya eXtremV2" /f
REG ADD HKLMSOFTWAREWow6432NodeNtreevPangYa_Th /v Argument /t REG_EXPAND_SZ /d "not_used" /f
REG ADD HKLMSOFTWAREWow6432NodeNtreevPangYa_Th /v Launcher Version /t REG_EXPAND_SZ /d "v3.1" /f

最新更新