在博客中http://blogs.msdn.com/b/zainnab/archive/2007/07/09/grep-and-sed-with-powershell.aspx我找到了一个作为 PowerShell 脚本实现的 sed 替代品。我不想依赖任何第三方 sed 变体的安装。因此,我将使用上面链接中的解决方案:
SED-ish
cat somefile.txt | %{$_ -replace "expression","replace"}
不幸的是,这种方式行不通
powershell cat somefile.txt | %{$_ -replace "expression","replace"}
因为是|
由 cmd.exe 解释的。如何将这个漂亮的 PowerShell 脚本变成一行,用于批处理文件?
答案1
在批处理脚本中运行 PowerShell 命令
您可以使用该-Command
参数,如下所示:
powershell -NoLogo -NoProfile -ExecutionPolicy Bypass -Command "cat somefile.txt | %{$_ -replace 'expression\",\"replace\"}"
笔记在命令字符串中"
需要使用 进行转义\"
(或替换为'
),并且%
必须用 进行转义%%
。
进一步阅读
答案2
尝试这个 :
powershell -Command "cat somefile.txt | %{$_ -replace 'expression','replace'}"