批处理正在输出消息,即使echo被关闭了。

4
我有一个简单的代码,可以打印特定键中的注册表值。 问题是,每次循环迭代时都会打印出活动目录。 记录一下,我使用另一个只有两个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

我知道如果我用单个命令替换do块,这个问题就会消失,但是do块中会有其他代码,所以我不能用单一命令替换它。

考虑到这一点,有没有办法在不打印C:\User\[username]\Desktop\RegTest>()的情况下编写REG QUERY命令(以及之后的组合)?

1个回答

3

尝试使用:

@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循环打开了回显,所以您需要关闭括号的回显。

1
这很简单。谢谢! - Zero

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接