4

我是自学 PowerShell 的,现在我已经编写了一些脚本,其中一些非常强大。尽管如此,我还是担心我可能没有按照预期的方式使用 PowerShell。以下是我的两个主要担忧:

  1. 根据我的阅读,PowerShell 脚本应该以这样的方式编写,即它们可以通过管道输入,也可以通过管道输出到其他东西。但是我编写脚本的方式是完全独立的,并通过Write-Host.

  2. 我读过的另一件事是,当出现错误时(例如,您尝试读取文件但没有权限),您应该使用Write-Error而不是Write-Host. 不过,我不这样做。我只是捕获简单的英文错误消息并将其输出,Write-Host因此对于除了如何运行脚本之外对 PowerShell 或编码一无所知的人来说,它对用户更友好。

在 PowerShell 社区中,这些事情中的任何一个都非常不受欢迎吗?如果我向高级 PowerShell 编码人员展示我的一个功能强大、注释良好、易于阅读的脚本,他会嘲笑它并称其为垃圾吗?

我的一些脚本可能对其他人有用,但我不愿将代码展示给任何人,因为担心我的风格不正确。任何帮助,将不胜感激。谢谢!

4

2 回答 2

2

我不认为期望使用脚本,write-output而不是write-host让输出可以通过管道传输到其他脚本等。Cmdlet 和也许函数可以做到这一点,但不是脚本。如果您必须向用户显示有关脚本正在执行的操作的信息,您不妨使用Write-Host. 请注意Write-Output,如果要将脚本的输出记录到日志文件并在屏幕上显示给用户,则使用可能会很好。在您使用时这样做Write-Host不能轻松/有效地完成。

Write-Error添加一些不需要 IMO 的附加信息。我很少使用Write-Error. 我Write-Host -fore red message用来指示脚本中的错误。这使它保持美观和简单。

但是,当然,我们不能做出总是使用 Write-Output 或总是使用 Write-Host 等的声明。这将取决于情况以及您将如何使用脚本。

于 2012-04-19T04:13:32.037 回答
2

“如果我展示我的一个功能强大、评论良好、易于阅读的脚本”

每个人都不能一直遵循 IMO 最佳实践。我认为只要您的代码功能强大,易于阅读和修改(带有注释),并且如果人们发现它有用,那么您不必担心遵循最佳实践,但最好开始在您的代码中实施最佳实践慢慢地。

在 SharePoint 中,最佳做法是将错误写入日志和事件查看器,但在我的一些项目中,我们将错误详细信息通过电子邮件发送到特定收件箱,以立即检查和纠正问题。我们没有遵循此处的最佳实践,但我们发现这很有用且有效。

我们有许多 PowerShell 脚本,我们的团队几乎每天都使用这些脚本在我们的 SharePoint 服务器中执行快速任务。它们是由我们编写的,我们也没有遵循所有最佳实践 :)

于 2012-04-19T03:55:01.093 回答