当使用-replace
运算符或Replace()
方法时,我需要知道Powershell进行了多少次替换。或者,如果这是不可能的,是否可以替代。Powershell,你做了多少替代品?
例如,在Perl中,因为替换操作返回由替换的数目和零是假,而非零是在布尔上下文真,一个可以写成:
$greeting = "Hello, Earthlings";
if ($greeting ~= s/Earthlings/Martians/) { print "Mars greeting ready." }
然而与Powershell的该运算符和方法返回新的字符串。看来运营商提供了一些额外的信息,如果有人知道如何要求它(例如,捕获的组存储在它在当前范围内创建的新变量中),但我无法找到如何获得计数或成功的价值。
我可以比较前后值,但这似乎完全没有效率。
的最佳解决方案! – 2010-02-27 02:13:13
这对PS 3/Windows 8中的我不起作用。替换工作,但$ count为0.但是,当我在PS 2模拟中运行时(通过powershell -version 2)它工作正常。 – bart 2013-05-02 23:07:15
我发现这是因为Windows Management Framework 3发行说明中记录的更改:“以代理身份执行的脚本块在其自己的作用域中运行”。让$ count全局解决了这个问题。 – bart 2013-05-02 23:29:48