Как избежать кавычек в команде Exec в MSBuild
Я пытаюсь создать MSBuild script, который сопоставляет сетевой диск с буквой диска в script, но, к сожалению, путь к целевой папке включает встроенное пространство. Вложенное пространство приводит к сбою отображения, и я не знаю, можно ли избежать кавычек по пути. Я пробовал двойные кавычки, но MSBuild не нравится (либо это, либо Windows XP не нравится). Кто-нибудь знает, как закодировать этого зверя, чтобы карта работала?
<Exec Command="net use x: \\ofmapoly703\c$\program files\ar\iap /user:$(UserID) $(Password)"
WorkingDirectory="c:\"
ContinueOnError="false"
/>
Вложенное пространство, конечно, происходит в "программных файлах".
Ответы
Ответ 1
Используйте "
, чтобы закодировать двойные кавычки, которые вы хотите видеть net
внутри значения атрибута Command
:
<Exec Command="net use x: "\\ofmapoly703\c$\program files\ar\iap" /user:$(UserID) $(Password)"
WorkingDirectory="c:\"
ContinueOnError="false"
/>
Ответ 2
Вы можете использовать одинарные кавычки для команды, например
<Exec Command='explorer.exe "$(DestinationDir)"' IgnoreExitCode="true" />
(Из Задача MSBuild exec без блокировки)
Ответ 3
Для меня использование одинарных кавычек вместо " это лучшее решение. Потому что ". Это может привести к проблемам, когда вы пытаетесь сделать XmlPoke, его перемещение в символы пробела смешно: от" к <