将新行从命令行传递到PowerShell

时间:2015-07-07 08:32:56

标签: powershell powershell-v3.0 powershell-v4.0

如何将新行字符从命令行传递给PowerShell?

// MyScript.ps1:
[CmdletBinding()]
Param(
    [Parameter()] $Param
)

Write-Host $Param

// Command line (not PowerShell - cmd.exe!)
powershell.exe -File MyScript.ps1 -Param "First`nSecond"

不起作用。同样使用命令行的新行字符\n不起作用。那么如何将新行传递给命令行呢?

3 个答案:

答案 0 :(得分:4)

解决方法是使用任何其他字符,例如命令行中\n,并在PowerShell中替换它:

$x = $param.Replace("\n", "`n")

然而,这是有效的,它当然是一种黑客,而不是我首选的解决方案。

答案 1 :(得分:1)

First Line◙Second Line中有一个特殊字符。

答案 2 :(得分:0)

您需要回车和换行:

`r`n

所以这应该有效:

powershell.exe -File MyScript.ps1 -Param "First`r`nSecond"
相关问题