如何在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

    上一篇: How to output something in PowerShell

    下一篇: Why are my powershell scripts not running?