Rex*_*Rex 3 windows registry batch-file
我试图在注册表中查询程序的安装位置.我感兴趣的只是位置输出.
这个问题有部分解决方案,但它没有多大帮助.在Windows 7上,reg命令输出一个愚蠢的注册表项标题以及值,如下所示:
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
Run Code Online (Sandbox Code Playgroud)
首先,有没有办法关闭标题并简化输出?
在命令提示符下,我可以将上面的内容更改为
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\NSIS Unicode" /v InstallLocation | findstr InstallLocation
Run Code Online (Sandbox Code Playgroud)
所以它只返回第二行.
现在,如果我使用a FOR /F来解析它并只获取目录值,则FOR命令失败| was unexpected at this time.
这是我的批处理文件:
@for /f "tokens=2* delims= " %%k in ('reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\NSIS Unicode" /v InstallLocation | findstr InstallLocation') do @echo %%k
Run Code Online (Sandbox Code Playgroud)
那我哪里错了?
您必须|使用插入符号(^)转义字符.
@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
Run Code Online (Sandbox Code Playgroud)
这会REG_SZ在我的机器上返回.
| 归档时间: |
|
| 查看次数: |
5572 次 |
| 最近记录: |