[玩转系统] Powershell参数|了解参数的属性
作者:精品下载站 日期:2024-12-14 05:02:37 浏览:15 分类:玩电脑
Powershell参数|了解参数的属性
Powershell参数介绍
参数只不过是提供给函数或任何 cmdlet 的输入。每个参数都有一个名称和与其关联的数据类型。参数不一定是强制的。某些参数还可能具有默认值,并且当未明确提及参数的值时使用这些值。对于函数,参数是使用 Param 块定义的。强制参数使用 [Parameter (Mandatory)] 属性定义。还可以使用 ValidateSet 属性验证传递给每个参数的值。参数名称前面始终带有连字符 (-),这表示 PowerShell (-) 后面的单词是参数。本文将详细讲解PowerShell中的参数及其类型、参数的各种类型、如何向函数传递参数等。
Powershell参数语法
以下示例显示如何将参数传递给 cmdlet
Get-ChildItem -Path “C:\vignesh\test”
在上面的示例中,路径是 cmdlet 的参数,参数对应的值包含在“ ”内。
要定义函数的参数,使用以下格式
param(
[Parameter()]
[string]$Testparameter1
[Parameter()]
[string]$Testparameter2
[Parameter()]
[int]$Testparameter3
)
识别与 cmdlet 关联的各种参数:
要识别 cmdlet 可用的各种参数,可以使用以下 cmdlet。
Get-Help CmdletName -Parameter *
示例:
Get-Help out-file -Parameter *
输出:
上面显示了与 Out-File cmdlet 关联的各种参数。它还显示参数是否为强制参数、其位置、别名。
参数的属性
这是下面提到的参数的属性
-Required
这表示该参数是否是运行此 cmdlet 所必需的。如果某个参数的该值为 true,则表示这是强制参数。如果未传递该参数的适当值,则会引发错误。
-Position
位置参数是将其位置设置为正整数的参数。使用此类参数时,不需要参数名称,但必须在适当的位置提及参数值。如果位置值为 0,则不需要参数名称,但其值应该第一个出现在 cmdlet 名称之后。如果排除位置设置,则可以在 cmdlet 中的任何位置定义它。
-Type
它表示参数的类型,如字符串、整数、开关等。
-默认值
这表示未指定其他值时参数的默认值。对于必需的参数,永远没有默认值,并且始终由用户提供。对于许多可选参数来说,没有默认值,因为可选参数没有太大意义。
-接受多个值
这表示参数是否可以接受多个值。如果允许多个值,则可以将它们以逗号分隔的形式键入并传递,或者可以将这些值以逗号分隔的方式保存在变量中,并且该变量可以作为值传递给参数。
-接受管道输入
这表示管道是否可以作为参数的输入传递。如果其值为 false,则表示该参数不接受管道输入。
-接受通配符
表示参数是否可以使用通配符来匹配字符。
参数验证
以下是验证传递给参数的值的一些方法。
1. 强制参数并允许空值
强制参数用于表示参数是否强制需要值。 AllowNull 属性用于允许空值作为值。
示例:
Param(
[Parameter(Mandatory=$true)]
[AllowNull()]
[String]
$UserName
)
在上面,UserName 是一个强制参数,它接受 null 作为值。
2.AllowEmptyString验证属性
此属性用于允许空字符串作为强制参数的值。允许空集合属性用于允许空集合作为强制字符串参数的值。
示例:
Param(
[Parameter(Mandatory=$true)]
[AllowNull()]
[AllowEmptyCollection()]
[String]
$UserName
)
ValidateCount 属性用于验证可以传递给参数的值的数量。
ValidateLenght 属性用于指定传递给参数的值的最小和最大长度。
Validatepattern 用于将正则表达式与传递给参数的值进行匹配。
ValdiateRange 指定变量值必须处于的范围。
ValidateSet 表示一组值,必须将其中一个值传递给参数。该设置之外的值不能设置为该参数。
ValidateDrive 用于验证特定驱动器的路径参数值
示例:
Param(
[Parameter(Mandatory=$true)]
[AllowNull()]
[AllowEmptyCollection()]
[ValidateCount(5,50)]
[ValidateLength(10,20)]
[ValidatePattern("[1-9][0-4][4-9][1-4]")]
[ValidateDrive("C", "Function", "Drive")]
[String]
$UserName
)
Example:Input:Write-Host "Welcome to parameter example"
function test1()
{
Write-Host "Demo of function without any parameter"
Write-Host "Function without parameters is called"
}
#calling test1 function
test1
function test2($username)
{
Write-Host "Demo of Function with a single parameter"
Write-Host "the value of username supplied is" $username
}
#calling test2 function with parameter
test2 -username "Viki"
function test2
{
Param(
[parameter(Mandatory=$true)]
[ValidateLength(1,30)]
[String]
$Name,
[parameter(Mandatory=$true)]
[Int]
$age,
[parameter(Mandatory=$true)]
[ValidateSet("Chennai", "Mumbai", "Delhi")]
[String]
$City
)
Write-Host "Demo of fucntion with multiple parameters"
Write-Host "The name supplied is" $Name
Write-Host "the age supplied is "$age
Write-Host "The city passed is " $City
}
#function calling
test2 -Name "Vignesh" -age 28 -City Chennai
function test3
{
Param(
[parameter(position=1)]
[ValidateLength(1,30)]
[String]
$Name,
[parameter(position=2)]
[Int]
$age,
[parameter(position=3)]
[ValidateSet("Chennai", "Mumbai", "Delhi")]
[String]
$City
)
Write-Host "Demo of fucntion with Positional parameters"
Write-Host "The name supplied is" $Name
Write-Host "the age supplied is "$age
Write-Host "The city passed is " $City
}
#function calling
test3 "viki" 35 "Chennai"
输出:
结论——Powershell参数
因此,本文详细介绍了 PowerShell 中的参数。它涵盖了各种类型的参数、与参数相关的各种属性、不同的参数类型、强制和非强制参数、参数验证等。要详细了解参数,建议编写示例脚本并执行他们。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag