为什么PowerShell返回新行?

为什么PowerShell返回新行?,powershell,whitespace,Powershell,Whitespace,我最近深入了解了PowerShell的一些微妙之处,并注意到一些我无法避免的事情,即使用这个普通函数在字符串开头返回新行 Function Why() { "" return "Well I tried." } 这将返回“\r\n我已经尝试过了” 这将输出以下内容: Starting test. Well I tried. Well I tried. Ending test. 现在,PowerShell似乎正在将一个输出连接到另一个输出。但是为什么?是什么使它认为我希望空

我最近深入了解了PowerShell的一些微妙之处,并注意到一些我无法避免的事情,即使用这个普通函数在字符串开头返回新行

Function Why() {
    ""
    return "Well I tried."
}
这将返回“\r\n我已经尝试过了”

这将输出以下内容:

Starting test.

Well I tried.
 Well I tried.
Ending test.
现在,PowerShell似乎正在将一个输出连接到另一个输出。但是为什么?是什么使它认为我希望空白行成为返回语句的一部分?我(可能是错误地)喜欢使用这样的行作为速记,或者为了调试目的更仔细地检查变量

相关:

此功能:

Function Why() {
    ""
    return "Well I tried."
}
正在返回两个字符串的数组。第一个字符串是空字符串,第二个字符串是“我试过了”。当PowerShell显示字符串数组时,它会将每个字符串放在换行符上

25> $r = why
26> $r.GetType()

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     Object[]                                 System.Array

27> $r[0].Length
0

28> $r[1]
Well I tried.
如果您只想让“Well I Twest”返回,您还可以使用或将不需要的返回值分配给
$null

Function Why() {
    Out-Null ""
    return "Well I tried."
}


在函数中做什么?这就是回响空白行<代码> \r\n>代码> @ BANSI >“”最初是回荡到控制台的空白行。这是我的一个坏习惯。我知道“什么”,但我想知道“为什么”。这是哪个版本的powershell?我没有看到空白行或“我试过了。”在4.0中打印了两次。@mikez这是PowerShell 2.0。。。这可能是导致问题的原因。
获取有关返回的帮助。
。函数中未捕获的任何内容都将返回。使用write host,您就不会有这个问题了……在这里,我一直认为它在返回字符串。德普。。。。非常感谢。
Function Why() {
    Out-Null ""
    return "Well I tried."
}
Function Why() {
    $null = ""
    return "Well I tried."
}
Function Why() {
    "" > $null
    return "Well I tried."
}