powershell - 在 PowerShell 中替换后如何管道?

标签 powershell

我想替换字符串中的字符,然后拆分它。 示例如下:

$in = "string with spaces"
$out = $in -replace 's' | $_.Split(' ')

导致 ExpressionsMustBeFirstInPipeline

为什么这不起作用?

最佳答案

替换进入管道的结果没有错,但您的下一步实际上并没有从管道读取。对于您选择的构造,您需要一个 ForEach-Object 循环:

$out = $in -replace 's' | ForEach-Object { $_.Split(' ') }

或对替换结果调用Split()(无管道):

$out = ($in -replace 's').Split(' ')

但是,如果您使用 -split 运算符而不是 Split() 方法,您可以简单地菊花链式连接它(再次不使用管道):

$out = $in -replace 's' -split ' '

关于powershell - 在 PowerShell 中替换后如何管道?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48265596/

相关文章:

arrays - 如何确保JSON保持数组

c# - 如何从 Windows Powershell 构建运行 vNext 应用程序?

powershell - 删除 powershell 输出中的空行

csv - 如何处理自动重复用户删除

windows - 使用 Pandoc/PowerShell 选项来避免​�?代替右双引号

json - 如何在PowerShell中访问名称由星号组成的属性?

powershell - 启动 PowerShell 时获取 bat 文件以继续

powershell - 在Powershell上相当于Unix的命令

powershell - 使用Powershell实现资源组中资源的标签

powershell - Powershell:函数意外返回值,使用$ args访问参数