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

时间: 2024-11-10 18:21:17

PowerShell脚本传递参数的相关文章

20.27分发系统介绍;20.28expect脚本远程登录;20.29expect脚本远程执行命令;20.30expect脚本传递参数

20.27 分发系统介绍 shell项目-分发系统-expect 20.28 expect脚本远程登录 1. 安装expect [[email protected] ~]# yum install -y expect 自动远程登录 2. 创建配置1.expect脚本(远程登录) [[email protected] ~]# vim 1.expect 添加内容(自动远程登录hao2机器并执行命令) #! /usr/bin/expect set host "192.168.211.129"

【hadoop】如何向map和reduce脚本传递参数,加载文件和目录

本文主要讲解三个问题: 1 使用Java编写MapReduce程序时,如何向map.reduce函数传递参数. 2 使用Streaming编写MapReduce程序(C/C++, Shell, Python)时,如何向map.reduce脚本传递参数. 3 使用Streaming编写MapReduce程序(C/C++, Shell, Python)时,如何向map.reduce脚本传递文件或文件夹. (1) streaming 加载本地单个文件 (2) streaming 加载本地多个文件 (3

如何向map和reduce脚本传递参数,加载文件和目录

本文主要讲解三个问题: 1 使用Java编写MapReduce程序时,如何向map.reduce函数传递参数. 2 使用Streaming编写MapReduce程序(C/C++, Shell, Python)时,如何向map.reduce脚本传递参数. 3 使用Streaming编写MapReduce程序(C/C++, Shell, Python)时,如何向map.reduce脚本传递文件或文件夹. (1) streaming 加载本地单个文件 (2) streaming 加载本地多个文件 (3

分发系统介绍、expect脚本远程登录、expect脚本远程执行命令、expect脚本传递参数

20.27 分发系统介绍 应用场景 当业务越做越大,服务器需求越来越多,几台服务器的话还好一点:当十几.几十台的时候,工作量就非常大!并且不规范,需要一个模板机分发到各个机器上去. 可以用开源的软件,expect脚本语言,进行实现分发系统的功能. 20.28 expect脚本远程登录 yum install -y expect 自动远程登录,并执行命令 #!/usr/bin/expect set host "192.168.21.130" set passwd "rootro

分发系统介绍,expect脚本远程登录,expect脚本远程执行命令,expect脚本传递参数

分发系统介绍 当我们要上线一个新代码的时候,如果机器少,我们的工作量不会很大,很容易完成,如果设备很多,有几十台,上百台的话,那我们的工作量会非常大,而且也不规范,这时,我们就可以用可以用开源的软件,expect脚本语言,进行实现分发系统的功能. expect脚本远程登录首先yum安装expectyum install -y expect 然后写一个expect的远程登录脚本#! /usr/bin/expectset host "192.168.133.132" 这是expect的变量

shell调用python脚本,并且向python脚本传递参数

1.shell调用python脚本,并且向python脚本传递参数: shell中: python test.py $para1 $para2 python中: import sys def main($canshu1, $canshu2) ..... main(sys.argv[1], sys.argv[2]) 2.使用shell调用python中的函数: python脚本如下: test.py: import ConfigParser config = ConfigParser.Config

分发系统介绍,expect脚本远程登录, expect脚本远程执行命令, expect脚本传递参数

分发系统介绍 当我们要上线一个新代码的时候,如果机器少,我们的工作量不会很大,很容易完成,如果设备很多,有几十台,上百台的话,那我们的工作量会非常大,而且也不规范,这时,我们就可以用可以用开源的软件,expect脚本语言,进行实现分发系统的功能. expect脚本远程登录 首先yum安装expectyum install -y expect 然后写一个expect的远程登录脚本#! /usr/bin/expectset host "192.168.133.132" 这是expect的变

分发系统介绍 expect脚本远程登录 expect脚本远程执行命令 expect脚本传递参数

一.分发系统介绍场景:公司业务逐渐扩大,后端服务端使用的编程语言是PHP,要运行PHP的环境,需要配置LAMP或者LNMP环境,最后还需要把代码上传到服务器上去,但是业务在迭代,需要新增功能,一台机器还好,可以在机器上直接修改,但是这样做不规范,如果机器有几十台或者上百台机器都是这一个站点的,比如有一个接口,APP访问量很大,APP需要调用服务端的一个接口,假如这个接口有50台机器在承载,这时候,就需要做一个分发系统,能够把每天或者每一段时间更新的代码分别发发布到这50台机器上去,分发器其实就是

分发系统介绍、 expect脚本远程登录、expect脚本远程执行命令、expect脚本传递参数

分发系统介绍 大多数企业都会有这样的需求,业务稍微大一点,它都会去做一些负载均衡,也意味着你的机器有多台,至少得两台,两台的话,你的程序是分别放在了两台机器上或者是多台机器上:假如说要添加一个新的功能,或者说你的程序有一个小bug,那这个时候你如果想这个bug修复,或者说新增一个功能的话,你要去改程序,那很多企业有svn,它是一个代码管理仓库,那我们如果把程序修改了之后呢,先传一份到svn库里边去:如果再智能自动化一点,我可以从咱们服务器上或者测试机上把svn库里的代码直接拽过来,发布到咱们的测