如何将新行字符从命令行传递给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
不起作用。那么如何将新行传递给命令行呢?
答案 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"