如何查找MSI文件并从命令行启动安装?

时间:2016-01-31 02:35:27

标签: windows cmd

目标:我想使用CMD.EXE查找位于C:\ProgramData的单个MSI - 而不是其他地方 - 然后执行它。

我的尝试: dir /s /b C:\programdata\*"my program"*.msi | explorer

问题:资源管理器已打开,但未启动我的MSI。

约束:我无法写一个.BAT。所以这必须在命令行上运行。

虽然这并不让我感到惊讶,但我显然不了解CMD.EXE并且管道足够好以便做到这一点。有什么指导吗?

1 个答案:

答案 0 :(得分:1)

A * .msi文件不是可执行文件。它是一个已编译的安装程序脚本文件,需要执行解释程序。口译员是msiexec.exe

可以使用命令 DIR 或使用命令 FOR 来搜索文件。

使用命令 FOR

的更好解决方案
for /R C:\ProgramData %# in ("my program*.msi") do %SystemRoot%\System32\msiexec.exe /i "%#"

使用命令 DIR FOR 的更复杂的解决方案:

for /F "delims=" %# in ('dir /A-D /B /S "C:\ProgramData\my program*.msi" 2^>nul') do %SystemRoot%\System32\msiexec.exe /i "%#"

要了解使用的命令及其工作原理,请打开命令提示符窗口,执行以下命令,并完全阅读为每个命令显示的所有帮助页面。

  • dir /?
  • for /?
  • msiexec /?

注意:如果在批处理文件中使用了两个命令行之一,则需要%%#而不是%#