在批处理脚本中运行 PowerShell 命令

在批处理脚本中运行 PowerShell 命令

在博客中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'}"

相关内容