2016-07-05 4 views
0

Я создаю скрипт GUI PowerShell, который переносит конфигурации сервера, экспортируя в .xml текущие конфигурации, чтобы затем применить его к другому компьютеру.Экспорт XML в путь со специальными символами

Я обнаружил, что командлет Export-Clixml не работает, если я выбираю папки со специальным символом, такие как ][ sss ]! ' @ # $% (<.

Эта проблема также в командлете Test-Path, но я обнаружил, что метод .net, оленья кожа у этой ошибки во время тестирования такого рода путей [System.IO.Directory]::Exists($DestinationPath + '\ServerConfig.xml')

Мой вопрос заключается в ¿, как экспортировать и импортировать .xml с .net?

ответ

1

Я настоятельно рекомендую вам: a) избегать размещения специальных символов на ваших дорожках и b) обновлять, по крайней мере, до PowerShell v3, поэтому вы можете использовать Export-Clixml -LiteralPathTest-Path -LiteralPath).

Если по какой-то неясной причине, что не возможно, вы могли бы попробовать

$xml = $data | ConvertTo-Xml 
$xml.Save('C:\path\to\output.xml') 

Однако ConvertTo-Xml и Export-Clixml не используют ту же схему, так что вам придется настроить процедуру импорта, а также.

+0

Я получаю сообщение об ошибке «Сохранить» с аргументом «1»: «Недопустимые символы в пути». –

+0

@kimopryvt Тогда ваш путь имеет [недопустимые символы] (https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247%28v=vs.85%29.aspx#naming_conventions) в нем. Исправьте это. –