Использование "%~dp0" с аргументами командной строки не работает
Создается сценарий развертывания для программного обеспечения, для которого требуется установить распространяемый Visual C++ 2013 в автоматическом режиме из движущегося источника (иначе, папка может находиться на ключе, на сервере, локально и т. Д.) В качестве администратора.
Для всех других моих исполняемых файлов (в основном 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\""