如何在PowerShell中输出一些内容
我正在批处理文件中运行PowerShell脚本。 脚本获取网页并检查页面内容是否为字符串“OK”。
PowerShell脚本向批处理脚本返回一个错误级别。
批处理脚本由FTP自动化程序ScriptFTP执行。 如果发生错误,我可以让ScriptFTP通过电子邮件将完整的控制台输出发送给管理员。
在PowerShell脚本中,如果它不是“OK”,我想从Web站点输出返回值,因此错误消息被包含在控制台输出中,并因此包含在状态邮件中。
我是PowerShell的新手,不确定使用哪种输出函数。 我可以看到三个:
什么是正确的事情用于写入Windows的等效stdout
?
简单地输出一些东西是PowerShell是美的东西 - 也是它最大的优势之一。 例如,常见的Hello,World! 应用程序被缩减为一行:
"Hello, World!"
它创建一个字符串对象,分配上述值,并且是命令管道上的最后一个项目,它调用.toString()
方法并将结果输出到STDOUT
(默认情况下)。 美的东西。
其他Write-*
命令专用于将文本输出到其关联的流,并具有它们的位置。
我认为在这种情况下,你需要写输出。
如果你有像这样的脚本
Write-Output "test1";
Write-Host "test2";
"test3";
那么,如果你调用带有重定向输出的脚本,像yourscript.ps1 > out.txt
,你将在“out.txt”屏幕上的test1ntest3n
屏幕上获得test2
。
请注意,“test3”和Write-Output行将始终在您的文本中添加一行,并且PowerShell无法停止此操作(即,使用本机命令在PowerShell中不可能使用echo -n
)。 如果你想(在Bash中有点基本和简单) echo -n
功能,请参阅samthebest的答案。
如果批处理文件运行PowerShell命令,它很可能会捕获写入输出命令。 我曾与系统管理员进行过长时间的讨论,关于应该写入控制台的内容和不应该写的内容。 我们现在已经同意,脚本执行成功或死亡的唯一信息必须是Write-Host
' Write-Host
的脚本的作者可能需要知道的有关执行的所有信息(更新了哪些项目,设置了哪些字段等等写入输出)。 这样,当您向系统管理员提交脚本时,他可以轻松地runthescript.ps1 >someredirectedoutput.txt
并在屏幕上看到,如果一切正常。 然后发送“someredirectedoutput.txt”给开发者。
你可以在你的场景中使用其中的任何一种,因为他们写入默认流(输出和错误)。 如果您将输出管道输送到另一个命令行程序,则需要使用写入输出,该写入输出最终将终止于写入主机。
本文介绍了不同的输出选项:PowerShell O用于输出
链接地址: http://www.djcxy.com/p/29033.html