我一直在尝试将REQ QUERY的结果标记为字符串。 我一直在尝试将结果的路径本身显示为字符串值,以便稍后可以使用它。
我试图这样做,但是却出现了一些错误。
@ECHO off
REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print" /F "C:\\jdavies6" /S
set KEY_NAME="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print"
set VALUE_NAME=C:\\jdavies6
FOR /F "usebackq skip=2 tokens=1-3" %%A IN (`REG QUERY %KEY_NAME% /F "%VALUE_NAME%" /S`) DO (
set ValueName=%%A
set ValueType=%%B
set ValueValue=%%C
)
@ echo %ValueName%
Pause
我希望脚本将键路径设置为我使用的值,但是它将“搜索结束”设置为值。 这是因为它会为结果的每一行覆盖设定值3次,但我不确定如何纠正这个问题?
答案 0 :(得分:0)
此构造仅在第一次通过循环时设置变量 它取决于变量是空白的,所以如果需要,在循环之前初始化它们。
if not defined ValueName set ValueName=%%A
if not defined ValueType set ValueType=%%B
if not defined ValueValue set ValueValue=%%C
答案 1 :(得分:0)
尝试这个并且\\是另一个问题(因为它不是批处理,批量转义字符是你不需要的)。而且我不确定你是否可以将/ f和/ s结合起来。
@ECHO off
set KEY_NAME="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print"
set VALUE_NAME=C:\jdavies6
FOR /F "usebackq skip=2 tokens=1-3" %%A IN (`REG QUERY %KEY_NAME% /F "%VALUE_NAME%" /S`) DO (
set ValueName=%%A
set ValueType=%%B
set ValueValue=%%C
)
echo %ValueName%
pause