[玩转系统] PowerShell 命令行参数
作者:精品下载站 日期:2024-12-14 22:06:55 浏览:12 分类:玩电脑
PowerShell 命令行参数
PowerShell 是一种多功能脚本语言,为处理命令行参数提供广泛支持,包括命名参数和位置参数,以及开关、数组和 $Args 等特殊参数类型。
在本文中,我们将讨论如何使用 PowerShell 命令行参数。
PowerShell 命令语法基础知识
PowerShell 支持命名参数和位置参数。命名参数通过其特定名称进行标识,位置参数通过其顺序进行标识。
以下示例说明了在 PowerShell 脚本中定义这两种类型:
# Create scrip1.ps1 file having parameters of different data types
param(
[string]$Subject,
[int]$Marks
)
Write-Host "Tom scored $Marks in subject $Subject."
在上面的示例中,$Subject 和 $Marks 是命名参数。让我们在运行脚本时使用它们:
D:\PS\script1.ps1 -Subject "Physics" -Marks 74
将参数传递给 PowerShell 脚本
让我们借助示例来了解在运行脚本文件时使用命名参数和位置参数。
使用命名参数
命名参数使得在脚本中使用它们时更容易阅读和理解。要在 PowerShell 脚本中使用命名参数,请显式提供它们:
D:\PS\script1.ps1 -Subject "Physics" -Marks 74
在上面的PowerShell脚本中,运行脚本文件时,需要Subject和Marks两个参数。我们在脚本中明确提供了这些参数及其值。
在脚本中使用命名参数时,参数顺序并不重要,提供正确的参数名称很重要。
上述 PowerShell 脚本的输出是:
使用位置参数
PowerShell 脚本中的位置参数允许您在不指定参数名称的情况下传递值,您必须按照脚本中定义参数的顺序提供值。
D:\PS\script1.ps1 "Physics" 74
在上面的 PowerShell 脚本中,我们按照脚本文件中定义的顺序提供了参数值。
切换参数命令行参数
当您的脚本中需要on/off
开关时,使用Switch
参数。它们不需要值,但要么是 true 要么是 false。
# Create script1.ps1 file having switch parameter
param(
[string]$Subject,
[int]$Marks,
[switch]$Verbose
)
Write-Host "Tom scored $Marks in subject $Subject"
Write-Host "The True/False switch argument is $Verbose"
要使用 switch 参数,请在调用脚本时使用它:
# Without switch parameter, it print the value as False
D:\PS\script1.ps1 -Subject "Physics" -Marks 74
# Include switch parameter when calling a script
D:\PS\script1.ps1 -Subject "Physics" -Marks 74 -Verbose
在上面的 PowerShell 脚本中,如果命令行参数中包含 switch
参数,它将打印 True,否则显示输出 False。
上述 PowerShell 脚本的输出是:
命令行参数中的数组参数
数组参数允许您将数组(多个值)传递给命令行参数中的单个参数。
# Create script1.ps1 file having Subjects parameter of type string[]
param(
[string[]]$Subjects
)
Write-Host "Subjects passed as an array are: $Subjects"
要在命令行参数中使用数组参数,请使用逗号分隔的列表将多个值传递给 $Subjects 参数。
D:\PS\script1.ps1 -Subjects "Maths","Physics","English"
上述 PowerShell 脚本的输出是:
PS C:\> D:\PS\script1.ps1 -Subjects "Maths","Physics","English" Subjects passed as array: Maths Physics English
PS C:\>
命令行参数中的验证属性
PowerShell 脚本中的验证属性允许您对参数实施特定限制。
# Create a script1.ps1 file having validation range defined for parameter.
param(
[ValidateRange(1, 100)][int]$Marks
)
Write-Host "$Marks is between 1 to 100" -ErrorAction SilentlyContinue
在上面的 PowerShell 脚本中,$Marks 参数必须介于 1 到 100 之间。
传递给定范围内和范围外的参数值。
# Pass the Marks value in between 1 to 100
D:\PS\script1.ps1 -Marks 25
# Pass the Marks value greater than 100
D:\PS\script1.ps1 -Marks 101
在上面的PowerShell脚本中,-Marks
参数值在1到100之间将显示结果如下:
PS C:\> D:\PS\script1.ps1 -Marks 25 25 is between 1 to 100
-Marks 参数值大于 100 将显示异常,因为提供的值超出了验证范围。
PS C:\> D:\PS\script1.ps1 -Marks 101 D:\PS\script1.ps1 : Cannot validate argument on parameter 'Marks'. The 101 argument is greater than the maximum
allowed range of 100. Supply an argument that is less than or equal to 100 and then try the command again.
At line:1 char:26
+ D:\PS\script1.ps1 -Marks 101
+ ~~~
+ CategoryInfo : InvalidData: (:) [script1.ps1], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,script1.ps1
在命令行参数中使用 $Args 自动变量
$Args
是一个自动变量,其中包含传递给脚本的所有参数的数组。
要使用 $Args
变量访问和操作脚本的参数,请使用以下脚本:
foreach ($arg in $Args) {
Write-Host $arg
}
使用 CMD 中的参数运行 PowerShell 脚本
要使用 cmd 中的参数运行 PowerShell 脚本,请使用以下命令:
powershell -ExecutionPolicy Bypass -File "D:\PS\script1.ps1" -Marks 74 -Subject "Physics" -Verbose
上述命令的输出显示结果如下:
C:\>powershell -ExecutionPolicy Bypass -File "D:\PS\script1.ps1" -Marks 74 -Subject "Physics" -Verbose
Tom scored 74 in subject Physics
The True/False switch argument is True
您可以了解有关如何使用不同方法从 cmd 运行 PowerShell 脚本的更多信息。
结论
我希望上述有关如何使用 PowerShell 命令行参数的文章对您有所帮助。我们深入讨论了命令行参数主题,包括命名参数、位置参数、开关、数组参数和用于访问传递给脚本的参数的 $Args。
猜你还喜欢
- 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