点击其中一个" reg query"结果值

时间:2018-01-22 10:19:42

标签: windows cmd

为了获取当前的Office安装路径, 我设置了这一行

reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WINWORD.EXE"

结果是:

(Default)    REG_SZ    C:\PROGRA~1\MICROS~1\Office16\WINWORD.EXE
Path    REG_SZ    C:\Program Files\Microsoft Office\Office16\
useURL    REG_SZ    1
SaveURL    REG_SZ    1

如何使用" C:\ Program Files \ Microsoft Office \ Office16 \"在一个变量? 感谢。

2 个答案:

答案 0 :(得分:0)

如果您运行cmd.exe,则从reg query /?开始,有一个突出的特定开关。

/v       Queries for a specific registry key values.
         If omitted, all values for the key are queried.

查看完整输出时,您非常具体地要求注册表项值Path

通过简单运行:

reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WINWORD.EXE" /v Path

我们可以减少噪音。

使用该逻辑,这里是批处理,它只使用提取的路径字符串的:作为分隔符,然后加入%%a作为C驱动器,%%b是其余部分:之后的路径,我们只是用冒号再次加入它们。

@echo off
setlocal enabledelayedexpansion
for /f "tokens=1,2 delims=:" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WINWORD.EXE" /v Path') do (
    set result=%%a
    set result=!result:~-1!
    set output=!result!:%%b
)
echo !output!

答案 1 :(得分:0)

只需使用(javascript)正则表达式.:(?!.*:).*

即可

这抓住的是:

.:                - Drive letter
  (?!.*:)         - Not followed by other colons (illegal in Windows paths)
         .*       - Followed by the path