我有一個XML文件,我打開並存儲在一個字符串中,其中Get-Content
需要執行一系列Replace()
操作來填充一些空的元素。Contains()和Replace()在控制檯中工作,但在運行腳本時不工作
我正在複製我需要從XML文件直接替換到腳本中的子字符串,除了一個之外,其他都執行替換。子字符串上使用Contains()
也返回False
。
如果我使用命令行打開XML文件,並嘗試執行相同的替換,直接從腳本中複製,它的工作原理和使用Contains()
返回True
。
我認爲這可能是Replace()
方法運行的順序,但我已經重新排列了順序,但它仍然不起作用。我也認爲這可能是一些空白,但我要替換的每個其他子字符串也有一些空白。
有什麼想法可能會導致這種差距?
編輯:
代碼示例:
$sharedStrings = '.\sharedStrings.xml'
$feeInfo = @('100.00', 'Cheque')
$excelXml = Get-Content -Path $sharedStrings -Encoding UTF8
$excelXml = $excelXml.Replace('Fee Due: £', "Fee Due: £$($feeInfo[0])")
$excelXml = $excelXml.Replace('Expected By: Cheque/Card / On-Line', "Expected By: $($feeInfo[1])")
$excelXml | Out-File -Encoding UTF8 ".\output.xml"
輸入XML的示例:
<t xml:space="preserve">Fee Due: £ Expected By: Cheque/Card / On-Line Paid on: / / </t>
輸出XML的示例:
<t xml:space="preserve">Fee Due: £ Expected By: Cheque Paid on: / / </t>
當Contains()拋出'false'時,我的第一個猜測是在運行腳本時檢查變量是否提供了正確的輸出,只需在腳本上輸出並檢查它即可。 – Paxz
請提供最小的,可驗證的完整示例。否則,我們只能猜測。 –
我編輯了一些關於回聲輸出和函數示例的更多信息。 –