我制作了一个删除某些注册表项的脚本。我已将所有键名称设置为变量,并将其作为变量设置为目标。
我添加了3个目的地作为变量,我希望在所有3个目的地中删除相同的注册表项。
由于我是批处理的初学者,我无法制作复杂的脚本,并且在所有这3个目的地中删除所有这些注册表键所需的命令,结果真的很长而且笨拙地说至少
我还需要这个代码是未来安全的,所以如果我们需要在这3个目的地中删除一个新的注册表项,我们将只能添加一个新的REG_KEY变量,它仍然可以工作。对代码的另一个小改动也没关系。
有人能帮助我以某种方式缩短它吗?你会在这里看到一个想法:http://pastebin.com/VnA16y5i
提前致谢。
答案 0 :(得分:2)
@echo off
setlocal enableextensions disabledelayedexpansion
for /f "delims==" %%a in ('set REG_KEY 2^>nul') do set "%%a="
for /f "delims==" %%a in ('set REG_PATH 2^>nul') do set "%%a="
SET "REG_KEY01={0EA09877-34E9-4160-B2DE-E7C7703E49ED}"
SET "REG_KEY02={2F3A6749-B379-4879-9AF8-5C0F04084C74}"
SET "REG_KEY03={350612EB-55FE-47DC-8E07-197B2409909B}"
SET "REG_KEY04={628ED0F8-590B-49CF-A525-A1696BD79304}"
SET "REG_KEY05={69BCC264-0D43-469F-8434-31E738982E7B}"
SET "REG_KEY06={80416A15-214B-4F25-A025-ED6E875631F2}"
SET "REG_KEY07={8EC141DE-D310-4A57-B363-02E00627B3F0}"
SET "REG_KEY08={8EC376A3-F279-47D7-97AA-7BA2A2EB006E}"
SET "REG_KEY09={915EABF2-2C1A-45C3-89DF-067C1AD39649}"
SET "REG_KEY10={9AA9FEE7-9F99-4E69-947A-49F7DA0DDA3A}"
SET "REG_KEY11={A43014F4-44F8-4539-8F87-C8471CB810B1}"
SET "REG_KEY12={B242E104-74A3-4A32-B665-58677B671A9C}"
SET "REG_KEY13={F63E747C-5B51-4A6E-9413-BF258F4653F3}"
SET "REG_KEY14={AAAB700A-DDB7-4298-AB4B-B6E9F785059C}"
SET "REG_PATH00=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components"
SET "REG_PATH01=HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Caphyon\Advanced Installer\LZMA"
SET "REG_PATH02=HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall"
for /f "tokens=1,* delims==" %%o in ('set REG_PATH'
) do for /f "tokens=1,* delims==" %%j in ('set REG_KEY'
) do echo reg delete "%%p\%%k" /f /va
此代码使用两个set
命令检索环境变量中的内容,使用一个set REG_PATH
命令检索路径,并为每个路径检索set REG_KEY
以检索列表的钥匙。输出行被拆分以分离变量的名称和它内部的值。
为了简化管理,已填充变量数以确保执行顺序与定义顺序相符。
reg delete
操作仅响应控制台。如果输出正确,请删除echo
命令
答案 1 :(得分:1)
@ECHO OFF
SETLOCAL
FOR /f "delims=" %%a IN (regkeys.txt) DO (
FOR /f "delims=" %%b IN (regpaths.txt) DO (
ECHO(reg delete "%%b\%%a" /f /va
)
)
GOTO :EOF
regkeys.txt
包含
{0EA09877-34E9-4160-B2DE-E7C7703E49ED}
{2F3A6749-B379-4879-9AF8-5C0F04084C74}
{350612EB-55FE-47DC-8E07-197B2409909B}
{628ED0F8-590B-49CF-A525-A1696BD79304}
...etc...
regpaths.txt
包含
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Caphyon\Advanced Installer\LZMA
...etc...
结果:simpy为文件添加所需的新密钥/路径以扩展清除。
显然要谨慎使用。请注意,所需命令只是echo
。将验证后的ECHO(reg
更改为reg
以激活reg delete ...