Усеченный вывод Powershell Add-Content

Я использую командлет Add-Content в сценарии PowerShell для записи совпадений в цикле foreach в отдельный текстовый файл. Для этого я использую следующий код:

Add-Content -Path $varListNotFound $match

$varListNotFound содержит имя файла и путь, а $match — это переменная в цикле foreach, которая сопоставляется в моем диапазоне элементов.

Я не уверен, имеет ли это значение, но совпадения, которые я сопоставляю, извлекаются из XML-документа.

В выходном текстовом файле совпадения, найденные в узле <name></name> моего XML-файла, выводятся правильно, если только имя не длинное. Если имя слишком длинное, оно усекается до 76 символов и добавляет после него три точки. Это вызывает проблему с этой строкой кода, которую я использую для очистки неиспользуемых элементов:

$xml.rhpml.variables.variable | ? { $varRemove -contains $_.name } | % {$xml.rhpml.variables.RemoveChild($_)}

Я добавил в свой сценарий, чтобы можно было удалить многоточие в конце усечения, но усеченное имя не удаляется из XML-документа.

Есть ли способ увеличить длину Add-Content? Или есть способ получить приведенный выше XML-код, чтобы не исключать усеченные имена?

Я попытался изменить $varRemove -contains $_.name на $varRemove -like$_.name, но это не удалило узлы из XML.


person EustaceMonk    schedule 25.10.2012    source источник


Ответы (1)


Попробуйте использовать командлет Out-File вместо Add-Content и укажите свойства Append и Width.

person dugas    schedule 25.10.2012
comment
Я попробовал это: Out-File -FilePath &varListNotFound -width 200 -append $match, но когда я открыл выходной файл, он был пуст, хотя должен был иметь значения. Может я неправильно использую Out-File? - person EustaceMonk; 25.10.2012
comment
Нашел проблему. Я должен был сделать это: $match | Out-File -FilePath &varListNotFound -width 200 -append - person EustaceMonk; 25.10.2012