Я использую командлет 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.