目标:--我想使用CMD.EXE找到一个位于C:\ProgramData (而不是其他地方)的MSI,然后执行它。
我的尝试: dir /s /b C:\programdata\*"my program"*.msi | explorer
问题:资源管理器会打开,但不会启动我的MSI。
约束:我不能编写一个.BAT,所以这必须在命令行上运行。
虽然这并不让我感到惊讶,但我显然不太了解CMD.EXE和管道,无法做到这一点。有指引吗?
发布于 2016-02-01 06:15:07
*.msi文件不是可执行文件。它是一个编译好的安装程序脚本文件,需要一个解释器来执行。解释器是msiexec.exe。
搜索文件可以使用命令、DIR、或命令进行。
使用命令实现的更好解决方案
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 /?注意:如果在批处理文件中使用这两个命令行之一,则需要%%#而不是%#。
https://stackoverflow.com/questions/35109703
复制相似问题