愚蠢的问题,但似乎无法解决。 如何扩展变量的内容,并在单引号中显示结果?
save()
我希望结果为 $Test = Hello
Write-output $($Test)
,包括引号。
答案 0 :(得分:1)
带有可扩展字符串(string interpolation):
# To embed *expressions*, additionally enclose in $(...); e.g., "'$($Test+1)'"
"'$Test'"
除了一般情况:为了仅输出一个值,不需要Write-Output
,因为PowerShell 隐式输出表达式/命令结果(即既不捕获也不重定向)。
您可以按原样传递上面的表达式作为命令的参数,$(...)
, the subexpression operator不需要 ;坚持使用Write-Output
示例命令:
Write-Output "'$Test'"
使用可扩展字符串作为将变量值或表达式结果的默认字符串表示形式 嵌入字符串的便捷方式。
使用 -f
,字符串格式运算符(内部基于String.Format
):
"'{0}'" -f $Test # {0} is a placeholder for the 1st RHS operand
# Enclose in (...) to pass the expression as an argument to a command:
Write-Output ("'{0}'" -f $Test)
通过-f
运算符,您可以更好地控制结果字符串表示形式,从而可以执行诸如填充和为浮点数选择小数位数之类的操作。>
请注意,但是此方法仅适用于标量 ,不适用于数组(集合)。
具有字符串串联(+
):
"'" + $Test + "'"
# Enclose in (...) to pass the expression as an argument to a command:
Write-Output ("'" + $Test + "'")
这是字符串扩展的更详细的替代方法,使执行的操作更加明显。