2012-10-25 75 views
2

我在PowerShell腳本中使用Add-Content cmdlet將foreach循環中的匹配寫入單獨的文本文件。要做到這一點,我用下面的代碼:Powershell添加內容截斷輸出

Add-Content -Path $varListNotFound $match 

$varListNotFound包含文件名和路徑,而$match是在在我的範圍內的項目相匹配的foreach循環變量。

我不確定它是否有所作爲,但我匹配的匹配正在從XML文檔中提取。

在輸出文本文件中,除非名稱很長,否則我的XML文件的<name></name>節點中找到的匹配項將被正確輸出。當名稱太長時,它會將該名稱截斷爲76個字符並在其後添加三個句點。這是這一行的,我使用了清除掉不用的物品代碼引起的問題:

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

我已經添加到我的腳本,這樣我可以從截斷的末尾刪除省略號,但截斷的名稱不會從XML文檔中刪除。

有沒有辦法延長添加內容的長度?或者有沒有辦法讓上面的XML代碼不排除截斷的名稱?

我試着將$varRemove -contains $_.name更改爲$varRemove -like$_.name,但它並沒有從XML中刪除節點。

回答

1

嘗試使用Out-File cmdlet而不是Add-Content,並指定Append和Width屬性。

+0

我試過這樣的:'Out-File -FilePath&varListNotFound -width 200 -append $ match'但是當我打開輸出文件時,它應該有值的時候是空白的。也許我沒有正確使用Out-File? – EustaceMonk

+0

發現問題。我應該這樣做:'$ match | Out-File -FilePath&varListNotFound -width 200 -append' – EustaceMonk