【问题标题】:How to find Microsoft Office path from command line如何从命令行查找 Microsoft Office 路径
【发布时间】:2014-03-18 06:52:49
【问题描述】:

我想使用命令行来定位 MS office 的路径。它应该返回类似C:\Program Files (x86)\Microsoft Office\Office14 的内容,这可能对不同的用户有所不同。

尝试使用:

where WINWORD.EXE 
INFO: Could not find files for the given pattern(s).

for %i in (WINWORD.EXE) do @echo.   %~$PATH:i
No output

感谢您的帮助

【问题讨论】:

    标签: windows batch-file command-line ms-office


    【解决方案1】:

    一个起点是应用程序注册的注册表项

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

    【讨论】:

      【解决方案2】:

      你可以试试这个命令来获取winword.exe的完整可执行路径:

      get-childitem "C:\Program Files*\Microsoft Office" -recurse | where {$_.Name -eq "winword.exe"} | select -first 1 | % { $_.FullName }
      

      【讨论】:

        【解决方案3】:

        搜索注册表然后搜索文件并将路径输出为字符串的功能。 (以“EXE”为Arg)

        WHERE 很棒,但速度很慢。我发现查询注册表更快,但不太可靠,所以我将这两个想法组合成一个函数,如下所示:

        app_path_func.cmd:

        @ECHO OFF
        CLS
        
        FOR /F "skip=2 tokens=1,2* USEBACKQ" %%N IN (`reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\%~1" /t REG_SZ  /v "Path"`) DO (
         IF /I "%%N" == "Path" (
          SET wherepath=%%P%~1
          GoTo Found
         )
        )
        
        FOR /F "tokens=* USEBACKQ" %%F IN (`where.exe %~1`) DO (
         SET wherepath=%%F
         GoTo Found
        )
        
        FOR /F "tokens=* USEBACKQ" %%F IN (`where.exe /R "%PROGRAMFILES%" %~1`) DO (
         SET wherepath=%%F
         GoTo Found
        )
        
        FOR /F "tokens=* USEBACKQ" %%F IN (`where.exe /R "%PROGRAMFILES(x86)%" %~1`) DO (
         SET wherepath=%%F
         GoTo Found
        )
        
        FOR /F "tokens=* USEBACKQ" %%F IN (`where.exe /R "%WINDIR%" %~1`) DO (
         SET wherepath=%%F
         GoTo Found
        )
        
        :Found
        SET %2=%wherepath%
        :End
        

        测试:

        @ECHO OFF
        CLS
        
        CALL "app_path_func.cmd" WINWORD.EXE PROGPATH
        ECHO %PROGPATH%
        
        PAUSE
        

        结果:

        C:\Program Files (x86)\Microsoft Office\Office15\WINWORD.EXE
        Press any key to continue . . .
        

        https://www.freesoftwareservers.com/display/FREES/Find+Executable+via+Batch+-+Microsoft+Office+Example+-+WINWORD+-+Find+Microsoft+Office+Path

        【讨论】:

          猜你喜欢
          • 2012-04-07
          • 2019-07-28
          • 2016-11-03
          • 1970-01-01
          • 2011-04-29
          • 1970-01-01
          • 1970-01-01
          • 2016-04-18
          • 2018-03-12
          相关资源
          最近更新 更多