2011-06-01 106 views
1

我正在运行一个PowerShell脚本,它自己调用另一个脚本。在第一个脚本中,当我放置回显时,一切正常,但在第二个(“客户端”)脚本中无法显示任何回显以显示任何内容。如何从“客户端”PowerShell脚本获取回显工作?

我怎样才能得到回声工作?

我在Windows 7 Pro和PowerGUI上使用PowerShell 2.0。 (我也尝试过使用ISE,但它没有帮助)

回答

2

您应该使用Write-Host直接插入echo(女巫是Write-Output的别名)。

+0

它似乎现在工作,但另一个问题:我想打印对象的完整属性,但写主机只打印其类型。我该如何解决这个问题? – Vimvq1987 2011-06-01 08:15:30

+0

您绝不应该使用Write-Host来在脚本中返回或输出某些内容。最好的做法是始终使用写输出 – ravikanth 2011-06-01 08:47:52

+0

ravikanth如果SO想要写入控制台,而不是*管道,那么使用写主机是正确的。这个问题没有明确区分这个问题。 – 2011-06-01 08:53:26

1

脚本示例将有助于给出准确的答案。也就是说,我尝试了嵌套脚本的Write-Output,一切似乎都适合我。

#Script1.ps1 
Write-Output "Script 1" 
Write-Output "Calling Script 2" 
./Script2.ps1 

#Script2.ps1 
Write-Output "Script 2" 
Write-Output "Script 2 End" 

而且,输出:

PS> .\Script-one.ps1 
Script 1 
Calling Script 2 
Script 2 
Script 2 End 
+0

似乎@ Vimvq1987间接调用该脚本。即使用powershell.exe – 2011-06-04 19:28:58

1

您可以使用Write-Host写入控制台(主机)

似乎有使用Write-Output VS Write-Hostecho是别名有些混乱对于写输出 - 你可以从Get-Alias中看到它)。 Write-Output不只是写入控制台。从文档:

将指定的对象发送到管道中的 next命令。如果 命令是 管道中的最后一个命令,那么这些对象将显示在控制台的 中。

+0

这不是阿尔乔姆所说的。他在说'echo'是'write-output'的别名。 – 2011-06-02 17:23:06

+0

@Joel B Fant - 谢谢,我不知道为什么我会这样读它! – manojlds 2011-06-02 18:12:02