gpt4 book ai didi

windows - 在 Windows 上使用带有 for/f 的管道命令(使用 reg 查询)

转载 作者:可可西里 更新时间:2023-11-01 14:41:28 30 4
gpt4 key购买 nike

我正在尝试查询注册表中某个程序的安装位置。我只对位置输出感兴趣。

This question有一个部分解决方案,但它并没有多大帮助。在 Windows 7 上,reg 命令输出一个愚蠢的注册表项 header 和值,如下所示:

reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\NSIS Unicode" /v InstallLocation

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\NSIS Unicode
InstallLocation REG_EXPAND_SZ C:\Program Files\NSIS

首先,有没有办法关闭表头并简化输出?

在命令提示符下,我可以将上面的更改为

reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\NSIS Unicode" /v InstallLocation | findstr InstallLocation

这样它只返回第二行。

现在,如果我要使用 FOR/F 来解析它并只获取目录值,则 FOR 命令会失败并显示 |这时候出乎意料

这是我的批处理文件:

@for /f "tokens=2* delims=   " %%k in ('reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\NSIS Unicode" /v InstallLocation | findstr InstallLocation') do @echo %%k

那么我哪里出错了?

最佳答案

您必须使用插入符 (^) 转义 | 字符。

@echo off
setlocal

set KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\NSIS Unicode
set V=InstallLocation

for /f "tokens=2* delims= " %%k in ('reg query "%KEY%" /v %V% ^| findstr "%V%"') do echo %%k

这将在我的机器上返回 REG_SZ

关于windows - 在 Windows 上使用带有 for/f 的管道命令(使用 reg 查询),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8412149/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com