随笔 - 911  文章 - 5  评论 - 94  阅读 - 243万

给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

 

 

##################################################################
如果在脚本中不想声明参数的话,就一个参数的话,直接使用$args,使用其他变量无效
Write-Host "hello,$args"

powershell.exe f:\list2.ps1 wwtt

##################################################################
如下无法改变参数传递顺序,只能先传$a,再传$b,无法使用 -a -b指定参数
$a=$args[0]
$b=$args[1]

Write-Host "Hello,$a"
write-host "222,$b"

powershell.exe f:\list3.ps1 ww tt

 

 强制参数:

Param(
 [Parameter(Mandatory=$true)]$StartTime,
 [Parameter(Mandatory=$true)]$EndTime,
 $Run_User,
 $Target_User
)

 

posted on   momingliu11  阅读(7609)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
< 2013年3月 >
24 25 26 27 28 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31 1 2 3 4 5 6

点击右上角即可分享
微信分享提示