gpt4 book ai didi

powershell - While循环检查注册表的值,然后运行exe文件

转载 作者:行者123 更新时间:2023-12-03 00:10:29 26 4
gpt4 key购买 nike

我正在尝试编写一个while循环,该循环将检查注册表的值,并继续检查直到找到为止。一旦找到,我就不想运行位于网络共享上的可执行文件,然后停止循环。到目前为止,我可以让它在注册表中查找值,然后运行可执行文件,但是它会不断运行可执行文件,我不确定如何在运行可执行文件后将其破坏。

到目前为止,这是我的代码:

$regkey = 'HKLM:\Software\WOW6432Node\FolderPath'
$name = 'Test'
$exists = Get-ItemProperty -Path $regkey -Name $name -ErrorAction SilentlyContinue

While ($true) {
if (($exists -ne $null) -and ($exists.Lenght -ne 0)) {
& \\NETWORKSHARE\FolderName\Executable.exe -parameter -parameter "C:\Program Files (x86)\FolderName\JavaScriptObject.json" -parameter
} else {
Start-Sleep -Seconds 15
}
}

提前致谢!

最佳答案

有两件事,首先,最好将其设为DO {} WHILE {}循环,以便将其强制进行测试并继续进行测试,直到达到true为止;其次,该循环无限期地继续进行,而在您的示例中不做任何事情,因为它只是连续测试$exists进入while循环时是否为true。要重新测试$exists的正确/错误状态,您必须在每次循环运行时在循环开始时重新分配它。

$regkey = 'HKLM:\Software\WOW6432Node\FolderPath'
$name = 'Test'
$Notdone = $true

DO {
$exists = Get-ItemProperty -Path $regkey -Name $name -ErrorAction SilentlyContinue

if (($exists -ne $null) -and ($exists.Lenght -ne 0)) {
& \\NETWORKSHARE\FolderName\Executable.exe -parameter -parameter "C:\Program Files (x86)\FolderName\JavaScriptObject.json" -parameter

$Notdone = $false
}
else {
Start-Sleep -Seconds 15
}
} While ($Notdone)

关于powershell - While循环检查注册表的值,然后运行exe文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50126756/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com