PowerShell中如何将多个链式函数调用拆分到多行书写
PowerShell链式调用换行正确写法
PowerShell本身完全支持链式方法调用拆分多行书写,你之前的写法不符合语法规则才会报错,以下是两种兼容所有版本的实现方案:
方法1:将点运算符放在上一行末尾
这是最通用的写法,不需要额外添加符号,只要保证调用的点运算符紧跟在上一行的结尾即可:
$leet = $text. replace("a", "4"). replace("e", "1"). replace("e", "3")
方法2:用括号包裹整个链式表达式
如果你希望点运算符统一放在行首对齐,可以用括号把整个表达式包起来,PowerShell会识别括号内的换行属于同一逻辑行:
$leet = ($text .replace("a", "4") .replace("e", "1") .replace("e", "3"))
反引号失效原因
如果要使用反引号实现换行,必须保证反引号是所在行的最后一个字符,后面不能有任何空格、制表符等可见或隐藏字符,你之前使用反引号不生效大概率是反引号后附带了不可见的空格字符。
版本适配说明
PowerShell 7及以上版本已经原生支持你示例中「点运算符放在行首、无需额外符号」的换行写法,无需额外调整语法即可直接运行。
内容的提问来源于stack exchange,提问作者Koen
相关产品推荐
相关产品推荐

