【问题标题】:Batch FOR loop over REG QUERY directory批量 FOR 循环遍历 REG QUERY 目录
【发布时间】:2015-07-04 06:55:37
【问题描述】:

我正在尝试回显 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 ("%appdata%\Mozilla\Firefox\Profiles\*") DO (
    @echo %%~nxK
)

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

我尝试将其更改为

FOR /D %%K in ("REG QUERY HKCU\Environment\") DO (
    @echo %%~nxK
)

上述方法似乎不起作用。

另外,FOR 循环中提供的 /D 参数显然是 syntax-FOR-Folders,但是我不确定是什么注册表项将被识别为。

【问题讨论】:

    标签: windows batch-file command-line command


    【解决方案1】:

    你的意思是这样提取路径吗:

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

    【讨论】:

    • FOR /F "tokens=2*" %%a in ('REG QUERY HKCU\Environment\') DO @echo "%%b" 作为路径可能包含空格...
    • @JosefZ Good Catch ;) 我编辑了我的帖子并将其更改为您的帖子
    • @Hackoo 是的,这个答案几乎是正确的,但是我尝试将 tokens=2 更改为 tokens=3 @echo "%% a %%b %%c" 我只能让它回显 %USERPROFILE%\AppData\Local\Temp,我希望能够在我的打开帖子并输出 TEMP REG_EXPAND_SZ %USERPROFILE%\AppData\Local\Temp,最好是每个变量 1 部分,例如 a=TEMP, b=REG_EXPAND_SZ 等...
    • @realityStruck FOR /F "tokens=1,2*" %%a in ('REG QUERY HKCU\Environment\') DO @echo "%%a" "%%b" "%%c"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-13
    • 1970-01-01
    • 2020-11-17
    • 1970-01-01
    • 1970-01-01
    • 2014-11-28
    • 1970-01-01
    相关资源
    最近更新 更多