首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Powershell查找注册表项并将其删除

Powershell查找注册表项并将其删除
EN

Stack Overflow用户
提问于 2018-08-22 18:21:55
回答 1查看 8.1K关注 0票数 1

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

代码语言:javascript
复制
$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!"
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-22 19:54:17

问题出在if-子句上。

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

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

代码语言:javascript
复制
if($a){
#$a = true
} else {
#a = false
}

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

代码语言:javascript
复制
if($a -eq $true){
#$a = true
} else {
#a = false
}

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51964744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档