使用带有命令行参数的“%〜dp0”不起作用

使用带有命令行参数的“%〜dp0”不起作用

一直在为一个软件编写部署脚本,该脚本需要以管理员身份从移动源(即文件夹可能位于密钥上、服务器上、本地等)以静默模式安装 Visual C++ 2013 Redistributable。

对于我的所有其他可执行文件(主要是 MSI),在文件名前使用“%~dp0”(如下所示:“%~dp0Antidote9.msi”,后跟 /quiet、/q 等参数,效果很好。

但是对于 VC Redist,它不接受我的论点。

这是我的完整命令:

start /wait "%~dp0vcredist_x64.exe" /install /quiet /norestart

它可以正常提取文件,但随后却说我的参数无效,尽管我删除了 %~dp0,它仍能正常工作,并且我从执行 vcredist_x64.exe /? 中获得了参数。

我是否做错了什么或者我需要修改什么才能使我的论点发挥作用?

提前致谢!

答案1

你可以使用%CD%\代表当前目录代替%~dp0

我没有注意到这两者之间有什么区别。

附注:如果您使用start命令,最佳做法是""在要启动的程序前添加一个额外的命令,并将所有参数包含在一个引号中,并在必要时转义引号中的参数。例如:

start /wait "" "%CD%\MyProgram.exe /link \"MyOtherDLL.dll\""

相关内容