.bat 脚本的奇怪问题

Nic*_*kDa 2 windows batch windows-command-prompt

我有一个 .bat 脚本,它安装了 3 个软件。当我打开提升的命令提示符时,浏览到该文件并运行它,一切正常。当我直接运行 .cmd 时(使用 Windows 7 中的“以管理员身份运行”,没有任何反应。任何想法为什么会这样?

脚本如下:

rem 回声关闭

ECHO 正在安装 Bonjour,请稍候!

msiexec.exe /i reqs\Bonjour64.msi /quiet

ECHO 正在安装 DirectX 9.0C Redist ,请稍候

reqs\dxsetup.exe /静默

ECHO 正在安装 Airserver,请稍候。

msiexec.exe /i reqs\AirServer-1.9.1.msi /qn TRANSFORMS=PIDKEY.mst

任何帮助将不胜感激。

小智 5

我的猜测是脚本在通过“以管理员身份运行”启动时在不同的工作目录中启动。因此你的相对路径是错误的。如果您正常启动 cmd,您应该在您的用户配置文件中。如果您通过“运行方式”以管理员身份启动 cmd,您通常会在“C:\Windows\System32”中结束。

尝试这个:

rem ECHO OFF

ECHO Installing Bonjour , please wait!

msiexec.exe /i "%~dp0reqs\Bonjour64.msi" /quiet

ECHO Installing DirectX 9.0C Redist , please wait

"%~dp0reqs\dxsetup.exe" /silent

ECHO Installing Airserver , please wait.

msiexec.exe /i "%~dp0reqs\AirServer-1.9.1.msi" /qn TRANSFORMS="%~dp0PIDKEY.mst"
Run Code Online (Sandbox Code Playgroud)

%~dp0 被解析为脚本所在的目录(加上尾部反斜杠)。