批量打印消息,即使回声已关闭

时间:2016-05-11 05:40:49

标签: batch-file registry echo

我有一个简单的代码,用于打印特定键中的注册表值。 问题是,我在下面循环的每次迭代中打印出活动目录。

为了记录,我使用一个只有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块中会有其他代码,所以我不能用奇异命令替换它。

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

1 个答案:

答案 0 :(得分: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]
)

管道和转弯回声,所以你也需要用括号回声。