2012-10-25 6 views
2

PowerShell 스크립트에서 Add-Content cmdlet을 사용하여 foreach 루프의 일치 항목을 별도의 텍스트 파일에 작성합니다. 이렇게하려면 다음 코드를 사용하고 다음 $match 항목의 내 범위에서 일치되고있는 foreach 루프에서 변수 인 반면Powershell 추가 콘텐츠 출력 자르기

Add-Content -Path $varListNotFound $match 

$varListNotFound은 파일 이름과 경로를 포함합니다.

차이가 있는지는 잘 모르겠지만 일치하는 항목은 XML 문서에서 가져옵니다.

출력 텍스트 파일에서 이름이 길지 않으면 내 XML 파일의 <name></name> 노드에있는 일치 항목이 올바르게 출력됩니다. 이름이 너무 길면 76 자로 이름을 자르고 그 뒤에 3 개의 마침표를 추가합니다. 이것은 내가 사용하지 않는 항목에서 맑은을 사용하고 코드 줄에 문제를 일으키는 :

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

나는 절단의 끝에서 타원을 제거 할 수 있도록 내 스크립트에 추가 한 , 잘린 이름은 XML. 서에서 제거되지 않습니다.

추가 콘텐츠 길이를 연장 할 수있는 방법이 있습니까? 아니면 잘린 이름을 제외하지 위의 XML 코드를 얻을 수있는 방법이 무엇입니까?

$varRemove -contains $_.name$varRemove -like$_.name으로 변경하려고했지만 XML에서 노드를 제거하지 않았습니다.

답변

1

Add-Content 대신 Out-File cmdlet을 사용하고 Append 및 Width 속성을 지정합니다.

+0

'Out-File -FilePath & varListNotFound -width 200 -append $ match' 그러나 출력 파일을 열었을 때 값이 있어야 할 때 비어있었습니다. 어쩌면 Out-File을 올바르게 사용하지 않고 있을까요? – EustaceMonk

+0

문제가 발견되었습니다. 나는 이것을 했어야했다 :'$ match | 외부 파일 -FilePath & varListNotFound -width 200 -append' – EustaceMonk