Reputation: 347
I'm really not used to use batchs...So i'm stuck on a problem : I want to ADD some registry key values but it will prompt :
"key alreday exists, overwrite it (yes/no) ?"
So i would like to make if key value exists echo y and press <enter>
else reg ADD
the value....
The fact is i am totally lost in writing batch files, i tried this but i don't know how to make the IF
statement...And even less how to automatize the prompt answer !
@echo off
reg query HKLM\SOFTWARE\Wow6432Node\Ntreev\PangYa_Th /v Patcher || REG ADD HKLM\SOFTWARE\Wow6432Node\Ntreev\PangYa_Th /v Patcher /t REG_EXPAND_SZ /d "Updater_Launcher_ENG.exe"
REG query HKLM\SOFTWARE\Wow6432Node\Ntreev\PangYa_Th /v PatchNum /t REG_EXPAND_SZ /d "184" || REG ADD HKLM\SOFTWARE\Wow6432Node\Ntreev\PangYa_Th /v PatchNum /t REG_EXPAND_SZ /d "184"
REG query HKLM\SOFTWARE\Wow6432Node\Ntreev\PangYa_Th /v IntegratedPak /t REG_EXPAND_SZ /d "projectg500+.pak" || REG ADD HKLM\SOFTWARE\Wow6432Node\Ntreev\PangYa_Th /v IntegratedPak /t REG_EXPAND_SZ /d "projectg500+.pak"
REG query HKLM\SOFTWARE\Wow6432Node\Ntreev\PangYa_Th /v Ver /t REG_EXPAND_SZ /d "TH.R4.584.04" || REG ADD HKLM\SOFTWARE\Wow6432Node\Ntreev\PangYa_Th /v Ver /t REG_EXPAND_SZ /d "TH.R4.584.04"
REG query HKLM\SOFTWARE\Wow6432Node\Ntreev\PangYa_Th /v Launcher Version /t REG_EXPAND_SZ /d "v3.1" || REG ADD HKLM\SOFTWARE\Wow6432Node\Ntreev\PangYa_Th /v Launcher Version /t REG_EXPAND_SZ /d "v3.1"
REG query HKLM\SOFTWARE\Wow6432Node\Ntreev\PangYa_Th /v Install_Dir /t REG_EXPAND_SZ /d "C:\Pangya eXtremV2" || REG ADD HKLM\SOFTWARE\Wow6432Node\Ntreev\PangYa_Th /v Install_Dir /t REG_EXPAND_SZ /d "C:\Pangya eXtremV2"
REG query HKLM\SOFTWARE\Wow6432Node\Ntreev\PangYa_Th /v Argument /t REG_EXPAND_SZ /d "not_used" || REG ADD HKLM\SOFTWARE\Wow6432Node\Ntreev\PangYa_Th /v Argument /t REG_EXPAND_SZ /d "not_used"
REG query HKLM\SOFTWARE\Wow6432Node\Ntreev\PangYa_Th /v Launcher Version /t REG_EXPAND_SZ /d "v3.1" || REG ADD HKLM\SOFTWARE\Wow6432Node\Ntreev\PangYa_Th /v Launcher Version /t REG_EXPAND_SZ /d "v3.1"
Upvotes: 0
Views: 1695
Reputation: 38614
As already mentioned in your subsequent answer, you should use the /F
option with Add
to force the overwriting of existing value data. Please open a Command Prompt window type reg /?
and press the ENTER key to read the usage information.
However, there were several other issues with what you've posted, so I have rewritten the entire thing for you in two possible formats, (as I was unsure of your true intention).
Please note that I have made several, more appropriate, changes to what you posted, please do not modify any of the content I have posted, it has been written using the correct syntax, keys, values and data. Please also remember that this code is adding to a protected area of the Windows registry, so you must be running this script elevated or as a user with the required permissions.
This is how I'd suggest you perform the task, if you only want to add all of the registry keys, if there is already an existing value named Patcher
:
@Echo Off
SetLocal EnableExtensions
Set "Key=HKLM\SOFTWARE\Ntreev\PangYa_Th"
Set "Reg=%SystemRoot%\System32\reg.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
)
If you simply want to add all of the data regardless of any existing values, then just this would be all you need:
@Echo Off
SetLocal EnableExtensions
Set "Key=HKLM\SOFTWARE\Ntreev\PangYa_Th"
Set "Reg=%SystemRoot%\System32\reg.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
Upvotes: 1
Reputation: 347
Ok after trying so many complicated solutions, i found out in the doc how to overwrite without prompt...
/f Adds the registry entry without prompting for confirmation.
So it's ok i have this working good :
@echo off
REG ADD HKLM\SOFTWARE\Wow6432Node\Ntreev\PangYa_Th /v Patcher /t REG_EXPAND_SZ /d "Updater_Launcher_ENG.exe" /f
REG ADD HKLM\SOFTWARE\Wow6432Node\Ntreev\PangYa_Th /v PatchNum /t REG_EXPAND_SZ /d "184" /f
REG ADD HKLM\SOFTWARE\Wow6432Node\Ntreev\PangYa_Th /v IntegratedPak /t REG_EXPAND_SZ /d "projectg500+.pak" /f
REG ADD HKLM\SOFTWARE\Wow6432Node\Ntreev\PangYa_Th /v Ver /t REG_EXPAND_SZ /d "TH.R4.584.04" /f
REG ADD HKLM\SOFTWARE\Wow6432Node\Ntreev\PangYa_Th /v Launcher Version /t REG_EXPAND_SZ /d "v3.1" /f
REG ADD HKLM\SOFTWARE\Wow6432Node\Ntreev\PangYa_Th /v Install_Dir /t REG_EXPAND_SZ /d "C:\Pangya eXtremV2" /f
REG ADD HKLM\SOFTWARE\Wow6432Node\Ntreev\PangYa_Th /v Argument /t REG_EXPAND_SZ /d "not_used" /f
REG ADD HKLM\SOFTWARE\Wow6432Node\Ntreev\PangYa_Th /v Launcher Version /t REG_EXPAND_SZ /d "v3.1" /f
Upvotes: 0