PowerShell脚本传递参数
在编写PowerShell脚本的时候,可以通过给变量赋值的方法输出想要的结果,但这样的话,需要改动脚本内容。其实也可以在脚本中定义参数,然后再在执行脚本的时候对参数赋值,而无需改动脚本内容。
在PowerShell脚本中,可以使用param()声明参数,如下:
param($a,$b)
write-host "Hello,$a"
write-host "nihao,$b"
将以上内容保存在F盘根目录下,命名为hello.ps1。
在命令提示符下运行该脚本,并分别为参数$a和$b指定值为“Lily”和“Lucy”,方式如下:
C:\Users\Administrator>powershell.exe F:\hello.ps1 Lily Lucy
脚本执行结果为:
Hello,Lily
nihao,Lucy
如果需要改变参数位置,需要为不同的参数指定值,如将$a指定值为“Lucy”,$b指定值为“Lily”,方式如下:
C:\Users\Administrator>powershell.exe F:\hello.ps1 -b Lily -a Lucy
脚本执行结果为:
Hello,Lucy
nihao,Lily
在声明参数的时候,还可以指定参数类型,如下:
param([string]$a,[int]$b)
$a+$b
在给脚本传递参数的时候,如果为$a和$b指定参数类型为string,则会报错,如下:
C:\Users\Administrator>powershell.exe F:\hello.ps1 -a LiLei -b Lin
F:\hello.ps1 : 无法处理对参数“b”的参数转换。无法将值“Lin”转换为类型“System.
Int32”。错误:“输入字符串的格式不正确。”
所在位置 行:1 字符: 25
+ F:\hello.ps1 -a LiLei -b <<<< Lin
+ CategoryInfo : InvalidData: (:) [hello.ps1], ParameterBindin...
mationException
+ FullyQualifiedErrorId : ParameterArgumentTransformationError,hello.ps1
只有为其赋予int类型值才可以,如下:
C:\Users\Administrator>powershell.exe F:\hello.ps1 -a 5 -b 6
11
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具