Як уникнути лапок у команді Exec Command у MSBuild


131

Я намагаюся створити сценарій MSBuild, який відображає мережевий диск на букву диска в сценарії, але, на жаль, шлях до цільової папки включає вбудований простір. Вбудований простір призводить до невдалого відображення, і я не знаю, чи можна уникнути лапок навколо шляху. Я спробував подвійні лапки, але це не подобається MSBuild (ні це, ні Windows XP не любить). Хтось знає, як кодувати цього звіра, щоб карта працювала?

<Exec Command="net use x: \\ofmapoly703\c$\program files\ar\iap /user:$(UserID) $(Password)"
WorkingDirectory="c:\"
ContinueOnError="false"
/>

Вбудований простір, звичайно, відбувається у "програмних файлах".

Відповіді:


192

Використовуйте &quot;для кодування подвійних лапок, які ви хочете netпобачити усередині Commandатрибуту:

<Exec Command="net use x: &quot;\\ofmapoly703\c$\program files\ar\iap&quot; /user:$(UserID) $(Password)" 
WorkingDirectory="c:\" 
ContinueOnError="false" 
/> 

7
Це не допомагає, коли у вас є, Command="quot;$(PathWithTrailingBackslash)&quot;"оскільки він відображає як "Path\With\Trailing\Backslash\"і \"є послідовністю вхідного командного рядка для ", тому всі наступні аргументи виплутуються.
jnm2

@ jnm2 Не могли ви просто додати ще одну &quot;після другої? Command="quot;$(PathWithTrailingBackslash)&quot;&quot;"
TetraDev

@TetraDev Тоді зворотна косою рисою все ще відсутня, і у вас є незакрита цитата, в ефекті якої я не зовсім впевнений.
jnm2

84

Для команди можна використовувати одинарні лапки, наприклад

  <Exec Command='explorer.exe "$(DestinationDir)"' IgnoreExitCode="true" />

виконання завдання MSBuild без блокування )


Для мене використовуйте одиничні лапки замість & quot; це краще рішення. Тому що & quot ;. Це може призвести до проблем, коли ви намагаєтеся зробити XmlPoke, його смішні символи переходять до пробілів: з & quot; до & amp; quot;
JavierD
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.