批量FOR循环REG QUERY目录

时间:2015-04-25 17:19:12

标签: windows batch-file command-line command

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

TEMP    REG_EXPAND_SZ    %USERPROFILE%\AppData\Local\Temp
TMP    REG_EXPAND_SZ    %USERPROFILE%\AppData\Local\Temp

正确返回

FOR /D %%K in ("%appdata%\Mozilla\Firefox\Profiles\*") DO (
    @echo %%~nxK
)

但是,我正在尝试修改以下 FOR 循环,该循环是为了在正常的Windows目录结构中循环文件和文件夹而创建的,但在使用注册表项时它不起作用

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

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

我尝试将其更改为

int main()
{

  char line[100], res[100], temp[20];
  fgets( line, 100*sizeof(char), stdin);    
  int i, j, l;
  for( i=strlen(line)-1; i>=0; i--)
  {
    if(line[i]==' ')
        for(j=i+1, l=0; line[j]!=' ' && line[j]!='\0'; l++, j++)
            temp[l]=line[j];
    temp[++l]=' ';
    temp[++l]='\0';
    strcat(res, temp);
  }
  puts(res);
  return 0;
}

以上似乎不起作用。

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

1 个答案:

答案 0 :(得分:0)

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

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