Windows REG查询目录上循环的批处理

Windows REG查询目录上循环的批处理,windows,batch-file,command-line,command,Windows,Batch File,Command Line,Command,我正在尝试回显HKCU目录中每个注册表项的列表。 在CMD中,我可以运行以下命令 REG QUERY HKCU\Environment\ 哪个正确返回 TEMP REG_EXPAND_SZ %USERPROFILE%\AppData\Local\Temp TMP REG_EXPAND_SZ %USERPROFILE%\AppData\Local\Temp 但是,我正在尝试修改下面的FOR循环,该循环是为了在正常的Windows目录结构中循环文件和文件夹而创建的,但是在

我正在尝试回显HKCU目录中每个注册表项的列表。 在CMD中,我可以运行以下命令

REG QUERY HKCU\Environment\
哪个正确返回

TEMP    REG_EXPAND_SZ    %USERPROFILE%\AppData\Local\Temp
TMP    REG_EXPAND_SZ    %USERPROFILE%\AppData\Local\Temp
但是,我正在尝试修改下面的FOR循环,该循环是为了在正常的Windows目录结构中循环文件和文件夹而创建的,但是在使用注册表项时它不起作用

上面的循环工作正常,并输出所有目录名

我试着把这个改成

FOR /D %%K in ("REG QUERY HKCU\Environment\") DO (
    @echo %%~nxK
)
上述情况似乎不起作用


此外,FOR循环中提供的/D参数显然是文件夹的语法,但是我不确定注册表项会被识别为什么。

您的意思是这样提取路径:

@echo off
FOR /F "tokens=2*" %%a in ('REG QUERY HKCU\Environment\') DO @echo "%%b"
Pause

对于'REG QUERY HKCU\Environment\'中的/F令牌=2*%%a,请执行@echo%%b,因为路径可能包含空格…@JosefZ Good Catch;我编辑我的帖子并将其更改为yours@Hackoo是的,这个答案几乎是正确的,但是我尝试将令牌=2更改为令牌=3@echo%%a%%b%%c,我只能让它回显%USERPROFILE%\AppData\Local\Temp,我希望能够在我的开场白中复制上述内容,并输出Temp REG\u EXPAND\u SZ%USERPROFILE%\AppData\Local\Temp,每个变量最好有1个部分,如a=TEMP、b=REG\U EXPAND\U SZ等。@realityStruck FOR/F令牌=1,2*%a在'REG QUERY HKCU\Environment\'DO@echo%%a%%b%%c中
@echo off
FOR /F "tokens=2*" %%a in ('REG QUERY HKCU\Environment\') DO @echo "%%b"
Pause