微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Windows 批处理文件中执行 msiexec.exe 命令时如何引用不同文件夹中的 MSI 文件?

如何解决在 Windows 批处理文件中执行 msiexec.exe 命令时如何引用不同文件夹中的 MSI 文件?

我编写了一个 Windows 批处理脚本来安装一些 MSI 文件,其中我的所有 MSI 文件与批处理脚本位于同一文件夹中,并且我使用“%~dp0”来引用我的 MSI 文件的路径。这是我之前使用的命令并且工作正常:

msiexec.exe /i "%~dp0TestMSI.msi" ALLUSERS=1 REINSTALLMODE=vomus /lv*v "C:\Program Files (x86)\Test\TestInstall.log" /qn

但现在我试图将所有 MSI 文件存储在一个单独的文件夹中,并尝试使用相同的 msiexec.exe 命令访问它们。此外,我不应该使用 MSI 的完整文件路径(例如:“C:/Test/MSIs/TestMSI.msi”),因为该位置将来可能会发生变化,这会破坏我的脚本。

我虽然这行得通,但行不通:

msiexec.exe /i "%~dp0..\MSIs\TestMSI.msi" ALLUSERS=1 REINSTALLMODE=vomus /lv*v "C:\Program Files (x86)\Test\TestInstall.log" /q

有什么方法可以在 msiexec.exe 命令中引用不同文件夹(在本例中为“MSIs”文件夹)中的 MSI 文件?我尝试了很多方法并查阅了文档,但没有一个成功。

解决方法

pushd 到目录并将您的 /i 路径重置为文件名:

@echo off
pushd "%~dp0..\MSIs"
msiexec.exe /i "TestMSI.msi" ALLUSERS=1 REINSTALLMODE=vomus /lv*v "C:\Program Files (x86)\Test\TestInstall.log" /q
popd

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。