批处理正在打印消息,即使 echo 已关闭
Batch is printing messages, even though echo is off
我有一个简单的代码可以打印出特定键中的注册表值。
问题是,我在下面的循环的每次迭代中打印出活动目录。
郑重声明,我使用了一个只有 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
我知道如果我把do块换成一个signle命令这个问题就会消失,但是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 打开回显,因此您也需要回显括号。
我有一个简单的代码可以打印出特定键中的注册表值。 问题是,我在下面的循环的每次迭代中打印出活动目录。
郑重声明,我使用了一个只有 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
我知道如果我把do块换成一个signle命令这个问题就会消失,但是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 打开回显,因此您也需要回显括号。