PowerShell脚本传递参数

Posted MicrobeORM

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 
分类: PowerShell

以上是关于PowerShell脚本传递参数的主要内容,如果未能解决你的问题,请参考以下文章

将参数从批处理文件传递到 PowerShell 脚本

使用 Powershell -encodedcommand 传递参数

如何使用c#winforms将参数传递到Powershell脚本?

powershell v2.0 从批处理 cmd 文件传递​​变量计算机名参数

Powershell脚本调用表达式查看传递给调用脚本的字符串参数并在其中查找错误

使用 PowerShell 函数传递和获取值