2013-09-16 4 views
0

Я пытаюсь решить этот отчет об ошибке: https://issues.jenkins-ci.org/browse/JENKINS-19447Как обрабатывать пробелы в пути к файлу журнала?

Дженкинс, выполнив следующую командную строку:

"C:\Program Files (x86)\Jenkins\tools\hudson.model.JDK\JDK_auto-install_\jdk.exe" /s /v /qn /L "C:\Program Files (x86)\Jenkins\tools\hudson.model.JDK\JDK_auto-install_\jdk.exe.install.log" REBOOT=ReallySuppress INSTALLDIR="C:\Program Files (x86)\Jenkins\tools\hudson.model.JDK\JDK_auto-install_"

Оказывается, что Msiexec не нравится путь журнала (/ L). Если журнал находится в пути с пробелами, msiexec жалуется на недопустимость командной строки. Если путь журнала не содержит пробелов, он работает нормально. Я предполагаю, что кавычки игнорируются, и путь анализируется как два отдельных параметра.

Как получить msiexec для принятия путей с пробелами?

+0

Вы можете избежать пробелов, используя имена 8.3, если система включена. – Gabe

+0

@Gabe, комментарии не ответы :) Пожалуйста, отправьте официальный ответ. – Gili

+0

Избегание не обрабатывается, поэтому я просто оставил комментарий. – Gabe

ответ

1

мне повезло (путем проб и ошибок, и сила Google):

Хитрость заключается в том, чтобы окружить /V «s аргумент в кавычки, и избежать вложенных цитат с помощью \". Вот обновленная версия командной строки.

"C:\Program Files (x86)\Jenkins\tools\hudson.model.JDK\JDK_auto-install_\jdk.exe" /s /v"/qn /L \"C:\Program Files (x86)\Jenkins\tools\hudson.model.JDK\JDK_auto-install_\jdk.exe.install.log\" REBOOT=ReallySuppress INSTALLDIR=\"C:\Program Files (x86)\Jenkins\tools\hudson.model.JDK\JDK_auto-install_\""

0

Я не знаком с jdk.exe но/s/v/дп означает, что это setup.exe InstallShield. Обычно это будет foo.exe/s/v "", где s и v являются переключателями в IS Setup.exe, и все, что следует за/v, - это args, которые должны быть переданы в дочерний процесс msiexec. Затем эти вещи должны быть удвоены.

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