我正在尝试获取注册表值的名称,然后将其删除。此注册表是字符串值,其名称在几乎所有机器上都不同,但名称中有一个共同点是“Excompass.exe”。我正在使用此查询来获取注册表项:-
reg query "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" |findstr /i "Encompass.exe"
显示的结果如下:-
C:\SmartClientCache\Apps\Ellie Mae\Encompass\Encompass.exe REG_SZ $ IgnoreFreeLibrary<AcroRd32.dll>
问题是,我只需要一个名称“C:\SmartClientCache\Apps\Ellie Mae\Encompass\Encompass.exe”,但我无法提取它。
我们如何才能获取这个注册表值名称?
我可以使用 PowerShell 轻松完成此操作,但我需要在 CMD 中执行此操作。
谢谢,
答案1
我们如何才能获取这个注册表值名称?
类似下面的操作应该可以工作(未经测试):
@echo off
setlocal enableDelayedExpansion
for /f "usebackq tokens=1 %%i in (`reg query "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" |findstr /i "Encompass.exe"`) do (
echo %%i
rem do something with %%i
)
进一步阅读
- Windows CMD 命令行的 AZ 索引- 与 Windows cmd 行相关的所有事物的绝佳参考。
- 对于/f- 循环命令以执行另一个命令的结果。