PS> 'abcjjadjjnamndabc' -replace 'abc', '$$'
PS> 'abcjjadjjnamndabc' | foreach { $_ + " end of statement" }
我有2条以上的语句可以独立运行,但是我想一次尝试执行此操作。
我确实尝试过类似下面的操作,但是语法失败。
PS> 'abcjjadjjnamndabc' | foreach { $_ + "end of statement" } |-replace 'abc', '',''
答案 0 :(得分:4)
您的主要问题是-replace
不是函数,cmdlet或方法。这是PowerShell Operator,这意味着您无法执行|-replace 'abc', ''
来传送到其中。
有很多方法可以将它们组合在一起,最简单的方法是交换订单并先进行替换:
'abcjjadjjnamndabc' -replace 'abc', '' | foreach { "$_ end of statement" }
或将管道包装在括号中,然后对结果进行替换:
('abcjjadjjnamndabc' | foreach { "$_ end of statement" }) -replace 'abc', ''
或者(如果您未在搜索/替换中使用正则表达式)将这些类似方法链接在一起:
'abcjjadjjnamndabc'.Replace('abc', '').ForEach({"$_ end of statement"})