繁体   English   中英

Powershell找到注册表项并删除它

[英]Powershell to find registry key and delete it

我创建了一个小的PowerShell脚本来查找注册表存在与否的位置。 它存在,然后使用命令REG DELETE删除它。 但是在第一次运行成功之后,我检查regedit并看到它已被删除了。 但是,如果我再次尝试运行脚本,它仍会返回它发现之前删除了一个注册表项。

$a = Test-Path -Path 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{23170F69-40C1-2702-1604-000001000000}'
if ($a = "True") 
{
    echo "Found!"
    REG DELETE "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{23170F69-40C1-2702-1604-000001000000}"
}
else
{
    echo "Not found!"
}

问题在于你的if子句。

在表达式中,您为变量$a赋值“True”,而不是检查$a等于“True”。 在这种情况下,if子句只检查赋值是否成功,应始终如此。

由于Test-Path返回一个布尔值,你可以像这样检查:

if($a){
#$a = true
} else {
#a = false
}

如果你想让它更清晰可读,你也可以这样做

if($a -eq $true){
#$a = true
} else {
#a = false
}

以下是关于powershell中的比较运算符的文档链接链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM