练就火眼金睛 了解优良PowerShell函数四大特性

日期: 2011-04-18 作者:Brandon Shell翻译:Mark 来源:TechTarget中国 英文

虽然Windows PowerShell能以多种方式给管理员带来好处,它的扩展性可能是它最重要的属性。这包括PowerShell函数,这些小且简单的任务工具由函数框内的命令组成。运用函数使得调试更简单,也通过让你可以将函数从一个脚本转向另一个来使编写的代码更少。   那么什么时候PowerShell函数最有用呢?以下是你需要记住的三个基本指南: 如果你一再地重复相同的代码块,例如在电脑上检查多个服务的代码块。

在这里,你可以运用函数来执行检查,在所有服务器上运行它,也可以更高效地检测到代码错误。如果你在其它脚本中运用一个专用代码。例如,如果你编写一个递归解析块,你会想要再利用该逻辑。如果该代码在……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

虽然Windows PowerShell能以多种方式给管理员带来好处,它的扩展性可能是它最重要的属性。这包括PowerShell函数,这些小且简单的任务工具由函数框内的命令组成。运用函数使得调试更简单,也通过让你可以将函数从一个脚本转向另一个来使编写的代码更少。

  那么什么时候PowerShell函数最有用呢?以下是你需要记住的三个基本指南:

  • 如果你一再地重复相同的代码块,例如在电脑上检查多个服务的代码块。在这里,你可以运用函数来执行检查,在所有服务器上运行它,也可以更高效地检测到代码错误。
  • 如果你在其它脚本中运用一个专用代码。例如,如果你编写一个递归解析块,你会想要再利用该逻辑。
  • 如果该代码在脚本之外有用。这和之前的指南有些许不同,好的例子就是ping-server函数。

  一般说来,编写代码时考虑再利用常常是个不错的想法,尤其是函数就有再利用的设计时。因此,除违约之外,要考虑函数怎么用、用在哪里能帮助建立它们本该有的参数,这一点很重要。

  考虑再利用时,最好是尽最大可能地考虑周全并避免硬编码。此外,编写函数时所有数据都应该通过参数。虽然为参数使用缺省值也说得通,你应该让函数调用者无须修改函数就能指定其它选项。这也是黑箱测试迟早有用的地方,它可以在不同的环境中确定一条函数的可用性。就这一点而言,考虑原始函数的所有变更以及这些变更如何影响脚本整体很重要。举例来说,在PowerShell V1中,我常常试着用我自己的转换器执行verbose和whatif命令。在V2中,这个问题已经解决了。

  设计函数时你还应该考虑回环和处理逻辑。例如,如果你有处理服务器的逻辑,那么你应该在函数外部维持该逻辑。没有必要为所有函数调用执行它。另一方面,如果你拥有的逻辑明显是函数域,那么你不需要移除它,只要应用调用脚本就行了。

  优良PowerShell函数的特性是什么?

  好的函数都是为特定需求而生然后被弃用,但是所有的好函数都有一些共性。以下是其中的一些特性:

  • 优良PowerShell函数特性一:定义良好的参数

  一条函数需要非常清楚它预期要返回什么数据。你可以通过应用指定参数来完成该过程。如果你显然有指定值要处理,那么确保它在函数中清晰。完成此过程的一个好方法是通过向要求的$ThisParam分配参数的缺省值。

  • 优良PowerShell函数特性二:一致性和预期输出

  你不用猜测函数中会有什么数据,这一点很关键,你宁愿返回的数据是预期的。设计函数所说它返回一种或多种简单数据类型,如线型、日期时间型或布尔运算(Boolean)。但注意,不要用编写输出编写的意外数据或变量中没有抓取的数据污染了这个数据流。

  • 优良PowerShell函数特性三:独立性

  该函数不应该依赖于来自脚本的任何变量。如果这条函数需要从外部输出,把它变成一个参数。

  • 优良PowerShell函数特性四:可移植性

  一条函数最简单重要的职能就是可移植性。如果你没有计划要再利用该代码,你也可以编写内联的代码。可移植性的关键因素是确保你的可变名称不会与调用函数冲突。就这一点而言,你可以用$my或$func给它们做序。

相关推荐