2016-10-05 4 views
1

変数([xml]$modificationData = Get-Content $modificationXmlFileName)を入力していたXMLファイルを使用していましたが、今はファイルを保存することができず、別のデータファイルに入れなければなりません。次のとおりです。変数のXMLコンテンツを取得する

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

私はこの新しい変数に敗走し、私が使用することができます他に何全くわからない場合Get-Contentコマンドレットは今うまくいくかはわかりません。

また、私はコードの周囲に@''@が何を意味するのか分かりません。私は@シンボルが配列のために使われていると思ったが、私はそうは思わない。

任意の説明が参考になります。

答えて

2

@'...'@構文は、ここでは、文字列やヒアドキュメントと呼ばれています。文字をエスケープすることなく文字列を指定する方法です。

Get-Contentはファイルを読み取るためのものです。デフォルトでそれを呼び出すと、-Rawパラメータを指定して呼び出さない限り(そして、ファイルのすべての内容を含む大きな文字列を返します)、行の配列を返します。

したがって、$xmldataは、Get-Content $modificationXmlFileName -Rawを呼び出した場合と同じです。

あなただけ[xml]にキャストしようとしているので、あなただけのことを行うことができます。

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

'@' @'構文ない補間マルチラインストリングを表すここで文字列と呼ばれます。

あなたは、変数を使用してGet-Contentコマンドレットを使用することはできません/にありません、だけではなく、XMLにキャスト:

[xml]$modificationData = xmldata 
+1

ニース、私はPowerShellで通常の文字列リテラル改行を含めることができますし、彼らはまだ動作することを追加します – briantist

関連する問題