什么是PowerShell中的可扩展字符串

3
在PowerShell的文档中,我遇到了表达式“可扩展字符串”(expandable string):

参数模式是为了解析shell环境下命令的参数和传入参数而设计的。除非使用以下语法之一,否则所有输入都将被视为可扩展字符串

很不幸,我无法找到“可扩展字符串”的定义,我的问题是:在PowerShell中,什么是“可扩展字符串”?

如何在PowerShell中扩展变量?的答案是否对您有所帮助? - Andrew Morton
@AndrewMorton:是的,他们回答了我的问题。 - René Nyffenegger
1
您可能还想研究以下函数:$ExecutionContext.InvokeCommand.ExpandString - Walter Mitty
1个回答

5

很不幸的是,截止到本文撰写时,关于PowerShell字符串文字的官方帮助主题about_Quoting_Rules并没有介绍"可扩展字符串"这个术语[更新: 现在在线版本已经包含了此更新; 您可能需要运行 Update-Help 才能在本地查看更新内容]。

可扩展字符串是什么:

  • 一个双引号字符串字面量("...")

    • 相比之下,单引号字符串('...')是一个逐字(literal)字符串。
    • 有关所有类型的PowerShell字符串文字的概述,包括here-string变体(例如,@"<newline>...<newline>"@),请参见this answer的底部部分。
  • 双引号字符串执行字符串插值(扩展)

    • 这允许您嵌入简单的变量引用,如原样(e.g, "$var"),并通过$()表达式和整个语句(例如,"$($var.property)")。用`转义逐字$ (和")字符。用{...}括起变量名以消除歧义(e.g. "${var}")。
    • 有关完整规则,请参见this answer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接