batch-file - 在批量查询中使用变量
问题描述
我很困惑为什么这不起作用。我希望找到一个密钥然后将其删除。我已注释掉删除以进行测试,因为它会产生如“reg query”行所示的错误。
@echo off
for /f %%a in ('
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" ^|
find "StartRCM"
') do (
set "regs=%%a"
)
echo %regs%
set key="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\%regs%"
echo %key%
REM reg delete %key% /f
reg query %key%
输出是:
C:\>test2.bat
StartRCM
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\StartRCM"
ERROR: The system was unable to find the specified registry key or value.
C:\>
编辑1
C:\>Reg Query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server"
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server
StartRCM REG_DWORD 0x0
...
C:\>
解决方案
@echo off
for /f %%a in ('
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" ^|
find "StartRCM"
') do (
set "regs=%%a"
)
echo "%regs%"
set "key=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server"
echo %key%
if defined regs reg delete "%key%" /v "%regs%" /f
reg query "%key%"
您的初始代码调整了StartRCM
.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\终端服务器 StartRCM REG_DWORD 0x0
从您的查询输出:
- 第一行是关键。
StartRCM
是价值。REG_DWORD
是数据类型。0x0
是数据。
推荐阅读
- r - 带有线型的 R ggplot2 图例
- r - 如何在 R 中使用 gsub 对字符串搜索使用两个条件?
- android - 如果从链接启动,Xamarin Forms WithParentActivityOrWindow 不起作用
- javascript - react redux 应用程序中的空闲超时
- sql - 如何将特定列作为行
- javascript - 有没有一种优雅的方法来检查至少一个元素是否具有某个类?
- google-apps-script - 如何将 Logger.log 内容发布到电子表格单元格中?
- javascript - CSS - 为什么我的 JS 脚本占满高度?
- javascript - 使用 React 钩子实现 shouldComponentUpdate - 仅渲染一次子节点,但在 props 更改时进行 DOM 更改
- prism - 使用 Prism IEventAggregator 跨平台