我有一个简单的代码,可以打印出特定键中的注册表值。
问题是,我在下面循环的每次迭代中都打印出事件目录。
作为记录,我使用了一个只有 2 个 DWORD 值的不同键:
姓名和测试
@Echo Off
set SpecialUserRegDir=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows
REG QUERY "%SpecialUserRegDir%" /s | for /F %%f in ('findstr "REG_DWORD"') do (
@echo %%f
[increment will be here]
)
输出
C:\User\[username]\Desktop\RegTest>()
NAME
C:\User\[username]\Desktop\RegTest>()
Test
我知道如果我用signle 命令替换do 块,这个问题就会消失,但是
do
中还会有其他代码。块,所以我不能用单个命令替换它。考虑到这一点,是否有任何方法可以在不打印出
C:\User\[username]\Desktop\RegTest>()
的情况下编写该 REG QUERY 命令(以及之后的组合)。 ?
最佳答案
尝试:
@Echo Off
set SpecialUserRegDir=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows
REG QUERY "%SpecialUserRegDir%" /s | for /F %%f in ('findstr "REG_DWORD"') do @(
echo %%f
[increment will be here]
)
管道和 for 打开回声,因此您也需要回声括号。
关于batch-file - 批处理正在打印消息,即使回声已关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37153911/