使用 powershell 函数-ag捕鱼王app官网

使用 powershell 函数

作者:迹忆客 最近更新:2024/02/01 浏览次数:

当我们编写 powershell 脚本时,我们有很多选择。例如,我们可以为任务编写一千行代码,全部在一个代码块中。

但是,那会很复杂。因此,我们应该编写 powershell 函数。

powershell 函数极大地提高了我们代码的可用性和可读性,使其更易于使用。在本文中,我们将学习编写函数、添加和管理函数的参数,以及设置函数以接受管道输入。


powershell 中函数和 cmdlet 之间的区别

powershell 函数的概念可能听起来很熟悉,因为它听起来像本机 powershell cmdlet。例如,write-hoststart-service 等命令与函数非常相似。

但是,cmdlet 被命名为解决单个问题的代码片段,并且不容易定制。cmdlet 和函数之间的区别在于这些构造的制作方式。

我们可以使用 get-command cmdlet 及其 -commandtype 参数查看哪些命令是 cmdlet 和函数。

get-command -commandtype function

上面的命令返回当前加载到我们的 powershell 会话或 powershell 可用模块中的所有函数。


powershell 中的函数简介

我们使用 function 关键字来定义一个函数,后跟一个描述性的、用户定义的名称和一组花括号。花括号内是我们希望 powershell 执行的脚本块。

下面我们可以看到一个主要功能和该功能的执行。该函数名为 install-software,使用 write-host 在控制台中显示输出消息(主要用于模拟安装)。

定义后,我们可以使用该函数的名称来执行其脚本块内的代码。

示例代码:

function install-software {
    write-host 'the software has been installed.'
}
install-software

输出:

the software has been installed.

powershell 中动词-名词语法的函数命名约定最佳实践

函数的名称是必不可少的。我们可以随意命名我们的函数,但名称应该始终描述函数的作用。

powershell 中的函数命名约定最佳实践是动词-名词语法。

我们应该始终以动词开头,后跟破折号和名词。使用 get-verb cmdlet 查找 approved 动词列表。

在 powershell 中定义高级函数

本教程假设我们在本节中将前面的代码直接复制并粘贴到 powershell 控制台中。我们还可以在脚本中定义函数。

我们在上一节中使用了一个小函数,因此在控制台中定义它并不是什么大问题。但是,大多数时候,我们将拥有更大的功能。

因此,在脚本或模块中定义这些函数,然后调用该脚本或模块将函数加载到内存中会更容易。

正如我们可能想象的那样,每次我们想要调整其功能时重新键入一个更重要的函数可能会令人困惑。


向 powershell 中的函数添加参数

函数可以有任意数量的参数。当我们创建函数时,我们可以选择包含参数并决定这些参数如何工作。

参数可以是可选的或强制的,它们可以被强制接受有限的参数列表之一或接受任何东西。

例如,我们通过 install-software 功能安装的虚构软件可能有许多可能的早期版本。但目前,install-software 功能无法让用户指定他们想要安装的版本。

如果我们是唯一使用该函数的人,我们可以在每次需要特定版本时更改其中的代码,但这会耗费大量时间。这种方法也容易出现潜在的错误,我们希望其他人能够使用我们的代码。

将参数引入我们的函数允许它具有可变性。正如变量允许我们编写可以处理相同情况的多个版本的脚本一样,参数将使我们能够编写一个以多种方式完成一件事的函数。

在这种情况下,我们希望它安装相同软件的版本并在多台计算机上安装。

首先,让我们在函数中添加一个参数,使用户或我们能够指定要安装的版本。


在 powershell 中的函数上创建简单参数

在函数上定义参数需要一个参数块。参数块保存函数的所有参数。

使用 param 关键字后跟括号定义参数块,如下所示。

示例代码:

function install-software {
	[cmdletbinding()]
	param()
	write-host 'the software has been installed.'
}

在这一点上,我们函数的实际功能并没有改变一点。我们刚刚安装了管道,为一个参数准备函数。

一旦我们添加了 param 块,我们可以通过将其放在括号中来创建参数,如下所示。

示例代码:

function install-software {
	[cmdletbinding()]
	param(
		[parameter()]
		[string] $version
	)
	write-host "the software version $version has been installed."
}

在上面的 param 块中,我们将首先定义 parameter 块。使用 parameter() 块会将参数转换为高级参数

像这里这样的空 param 块什么都不做,只是必需的; 我们将在下一节解释如何使用它。

让我们关注参数名称前面的 [string] 类型。我们通过将参数的类型放在参数变量名称之前的方括号之间来转换参数。

powershell 将始终将默认值设置为字符串。上面,变量 $version 中传递的任何内容都将始终被视为字符串。

我们还将 $version 添加到我们的 write-host 语句中。然后,当我们使用 version 参数运行 install-software 函数并传递一个版本号时,我们应该会收到一条消息显示。

示例代码:

install-software -version 2

输出:

the software version 2 has been installed.

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

发布时间:2024/03/04 浏览次数:358 分类:编程语言

本文将解释我们如何使用 powershell 的参数函数处理命令行参数,参数如何工作,我们如何使用 powershell 参数将值传递给参数,以及定义参数的基本方法是什么。

发布时间:2024/03/04 浏览次数:273 分类:编程语言

本教程将教你在 powershell 中向命令输出添加新行的不同方法。

发布时间:2024/03/04 浏览次数:332 分类:编程语言

本文将展示如何编码和解码 base64 字符串。windows powershell 当前版本没有本机命令,因此我们将向你展示如何执行此操作的替代方法。

发布时间:2024/03/04 浏览次数:324 分类:编程语言

本文将讨论如何使用不同的 powershell 替换方法替换或删除字符、文本和单词。

发布时间:2024/03/04 浏览次数:259 分类:编程语言

本文将向你展示如何在 windows powershell 中编写或打印输出。本文还将区分多个 write cmdlet 并解释它们的意义。

发布时间:2024/03/04 浏览次数:350 分类:编程语言

本文将展示在 windows powershell 中设置路径环境变量的正确方法。本文还展示了如何在持久性和非持久性方法中设置变量。

发布时间:2024/03/04 浏览次数:869 分类:编程语言

本文将讨论什么是环境变量以及如何使用多个 windows powershell 命令打印它们。

发布时间:2024/03/04 浏览次数:363 分类:编程语言

本文将展示在 windows powershell 中注释代码的多种方法。本文还介绍了注释代码时的一些最佳实践。

发布时间:2024/03/04 浏览次数:304 分类:编程语言

本文将深入了解如何使用 active directory 过滤器和 ldap 过滤器。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便
网站地图