2016-10-05 38 views
1

我曾經有一個XML文件填充變量([xml]$modificationData = Get-Content $modificationXmlFileName),但現在我無法存儲該文件,並且必須將其放入一個不同的數據文件中,這是我被告知要執行此操作的格式是:檢索變量的XML內容

xmldata = @' 
    <bigSection> 
    <smallSection> 
     <changes> 
     </changes> 
    </smallSection> 
    </bigSection> 
'@ 

我不知道如果Get-Content cmdlet的將現在的工作,如果我把它擊潰這一新的變量,我不能完全肯定,我可以使用什麼。

此外,我不知道圍繞代碼意味着什麼@''@。我認爲@符號用於數組,但我不認爲它在這種情況下。

任何澄清將有所幫助。

回答

2

@'...'@語法被稱爲這裏字符串或here文檔。這是一種指定字符串而不必轉義字符的方式。

Get-Content用於讀取文件。默認情況下調用它時,它將返回一個行數組,除非用參數-Raw調用它(然後它將返回一個包含文件所有內容的大字符串)。

因此在您的示例中,$xmldata與您撥打Get-Content $modificationXmlFileName -Raw時相同。

既然你只是想轉換爲[xml],你可以這樣做:

$xmldata = [xml]@' 
... 
'@ 
1

'@' @'語法被稱爲此處的字符串它代表一個多行字符串無插值

您不必/不能使用使用變量Get-Content cmdlet的,而不是僅僅將它轉換爲XML:

[xml]$modificationData = xmldata 
+1

尼斯,我將只添加在PowerShell中,經常字符串可以包含文字換行,他們仍然可以工作 – briantist