批处理文件中的PowerShell命令,其中命令中需要双引号

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了批处理文件中的PowerShell命令,其中命令中需要双引号相关的知识,希望对你有一定的参考价值。

我尝试在批处理文件中调用PowerShell命令:

powershell -Command "(gc test.txt ) -replace ("~[","`r`n[") | sc test.txt"

但它始终失败并出现此错误:

At line:1 char:29
+ (gc test.txt ) -replace (~[,`r`n[) | sc test.txt
+                             ~
Missing argument in parameter list.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordEx
   ception
    + FullyQualifiedErrorId : MissingArgument

我尝试使用单引号替换字符串:

powershell -Command "(gc test.txt ) -replace ('~[','`r`n[') | sc test.txt"

但是,当它出现在用单引号括起来的字符串中时,反引号转义符将被视为任何其他文本字符。

答案

只需使用反斜杠转义双引号:

powershell -Command "(gc test.txt ) -replace ("~[","`r`n[") | sc test.txt"

以上是关于批处理文件中的PowerShell命令,其中命令中需要双引号的主要内容,如果未能解决你的问题,请参考以下文章

如何从PowerShell /批处理文件中的网络路径运行命令

Powershell命令处理(传入变量)

如何从批处理文件执行 PowerShell 命令?

路径中的.cmd与.ps1

如何将命令行参数传递给 PowerShell ps1 文件

Powershell 管道总结