2013-09-27 3 views
1

Нам нужно запустить .msi-файл из пакетного файла, который работает нормально, если путь файла .msi жестко закодирован в пакетном файле. Есть ли способ получить путь к файлу .msi динамически, поскольку пакетный файл и .msi-файл существуют в одном месте? Это будет действительно решить цель как thses должно быть скопирована на несколько серверов ...Выполнение .msi из командного файла в том же месте

+0

ниже ссылка помогло: [введите описание ссылки здесь] [1] [1]: http://stackoverflow.com/questions/2730643/how-to-execute-programs-in -the-same-directory-as-the-windows-batch-file – satyajit

ответ

3
%~dp0install.msi 

% ~ dp0 дает путь вашей BAT-файл. (обратите внимание, что последний обратный слэш уже включен.

попробовать @echo %~dp0 в командном-файле)

+0

Что делать, если мне нужно добавить файл log.txt в то же место? – satyajit

+0

'echo Я хочу записать эту строку >>% ~ dp0log.txt' или лучше:' set logfile =% ~ dp0log.txt' в начале вашего пакетного файла, а затем 'echo, что я хочу сказать >>% logfile% ' – Stephan

+1

+1 для% ~ dp0. Кроме того, вы можете использовать 'PUSHD% ~ dp0' в начале вашего скрипта и' POPD' в конце скрипта, чтобы установить текущий каталог на место вашего скрипта ТОЛЬКО на весь срок действия скрипта. Я использую это все время. – igelineau

0

Если пакетный файл и файл MSI находятся в той же папке, то нет пути вообще не требуется. Пакетный файл по умолчанию соответствует текущему каталогу - и будет записывать файл журнала в текущий каталог.

Это только проблема, если пакетный файл запускается с сетевого диска.

Смежные вопросы