In Powershell-Strings sind entweder erweiterbar (wie interpolierbaren Strings in Perl) oder wörtlichen.
Alles in Anführungszeichen eingeschlossen ("
) ist erweiterbar, während in Ihrem Fall einfache Anführungszeichen ('
) für Zeichenfolgenliterale verwendet werden.
$month = 'Jan'
"First month is $month" # This will result in: First month is Jan
'First month is $month' # This will result in: First month is $month
Für mehrzeiligen Strings, verwenden Sie einen Heredoc (in der Regel hier-docs in anderen Sprachen genannt). Gleiche Regeln gelten:
$CAML = @"
<Where>
<Eq>
<FieldRef Name="Period" />
<Value Type="Text">$month</Value>
</Eq>
</Where>
"@
Wenn Sie ein Zeichenfolgenliteral verwenden möchten (dh, wenn die Zeichenfolge enthält andere Sonderzeichen oder wörtliche $
s, die Sie erhalten möchten.), Aber Sie müssen eine bestimmte Variable Wert einzufügen, verwenden das -f
Format Betreiber as shown by @jisaak:
$CAML = @'
<Where>
<Eq>
<FieldRef Name="Period" />
<Value Type="Text">{0}</Value>
</Eq>
</Where>
'@ -f $month
Um mehr über String-Erweiterung zu erfahren und unter Angabe finden Sie Get-Help about_Quoting_Rules
Danke für die schnelle Lösung. Es funktioniert. Ich lerne jedoch nur folgenden Code wird auch funktionieren. $ CAML = " \t \t \t \t \t \t \t \t \t \t \t $ ($ month) \t \t \t \t \t \t " –