PowerShell定义函数参数的2种方法和传参方法实例_PowerShell

本文介绍PowerShell自定义函数定义参数的两种方法,一种是将参数列表放到函数名之后,就跟其它语言定义函数参数一样;另一种则是PowerShell独有的方式,那就是使用param关键词。

先来看看第一种定义参数的方式——将参数列表放到函数名之后

举个例子先看看:

复制代码 代码如下:

function Test-Function($参数名1='默认参数值1', $参数名2='默认参数值2')
{
    Write-Host "参数1=$参数名1,参数2=$参数名2";
}

这种方式比较简单直接,而且有点像C#和PHP,可以直接赋默认值。

微软告诉我们,这种将参数定义的列表直接放到函数名后,不是最佳的做法。PowerShell在内部处理的时候,还是会进一步的将上面定义的参数格式转换成如下的官方语法:

复制代码 代码如下:

function Test-Function
{
    param($参数名1='默认参数值1', $参数名2='默认参数值2')
    Write-Host "参数1=$参数名1,参数2=$参数名2";
}

大家看出区别来了吧,直接将函数名之后的参数列表,连同括号一起拿掉。然后在函数体(大括号之内)来一段param关键词开始的参数定义代码,把参数列表就放到这儿了。其它的不变。

不管上面哪种定义参数列表的方式,运行的结果都是一样的。

顺便说一句,因为上面定义了参数的默认值,所以在调用的时候可以为参数赋值,可以不赋值。但赋值时一定要指明参数的名称。如:

复制代码 代码如下:

PS> Test-Function
参数1=默认参数值1,参数2=默认参数值2

PS> Test-Function -参数1 "p1"
参数1=p1,参数2=默认参数值2

关于PowerShell函数参数定义,本文就介绍这么多,希望对您有所帮助,谢谢!

时间: 2024-10-31 12:53:36

PowerShell定义函数参数的2种方法和传参方法实例_PowerShell的相关文章

各种语言执行入口的传参方法

在操作系统中,执行程序时可以由系统传入参数,就是在执行的时候,附带上参数.比如: 1 ping www.kryptosx.info 后面跟着的网址就是ping的参数. Linux和windows的shell都遵循这个参数传入方式.这里列一下各种语言的执行入口传参方法.主要分为两类,一种是有main函数的语言,一种是没有main函数的. 在执行命令的时候,linux系统会先对命令行进行分解.通常是以空格分解,如果有双引号,双引号内的也是认为是一个参数,无论里面有无空格. C类语言的执行入口传参:

Java中数组的创建与传参方法(学习小结)_java

(一)数组的创建 数组的创建包括两部分:数组的申明与分配内存空间. int score[]=null; //申明一维数组 score=new int[3]; //分配长度为3的空间 数组的申明还有另外一种方式: int[] score=null; //把中括号写在数组名前面 通常,在写代码时,为了方便,我们将两行合并为一行: int score[]=new int score[3]; //将数组申明与分配内存写在一行 (二)传递参数 由于初学java,这里只讨论值传递,不考虑地址传递.主要有3点

java构造器,与方法怎么传参,这样不对吗?为什么结果是0

问题描述 java构造器,与方法怎么传参,这样不对吗?为什么结果是0 public class Area { int width; int length; public static void main(String[] args) { Area ar=new Area(2,3); int areas=ar.area(); System.out.println(areas); } public int area(){ return this.width*this.length; } public

Javascript实例教程:点击传参方法和鼠标事件方法

文章简介:从这张开始就和大家说一些实用的效果的写法.当然首当其冲的就是我们可爱的TAB选项卡,用JQ写选项卡当然是很方便的而且方法也很多.其实用原生的JS写选项卡方法也很多. 从这张开始就和大家说一些实用的效果的写法.当然首当其冲的就是我们可爱的TAB选项卡,用JQ写选项卡当然是很方便的而且方法也很多.其实用原生的JS写选项卡方法也很多.下面我就写几个给大家看看一,点击传参方法<script>function tab(dom){var list = document.getElementByI

java 传参 编程-【Java初学者求助】,谢谢main方法里面传参的问题

问题描述 [Java初学者求助],谢谢main方法里面传参的问题 刚开始接触Java时间不久,谢谢各位帮忙.我想要得到的结果是:输入身高和体重,然后算出来exp是否合理,谢谢,package forth; import java.io.*; public class Person { float weight; float height; String check(){ float exp = weight/(height*height); if(exp<18) return ""

net-在Web用户控件ascx文件,怎么使用ajax调用后台方法并传参?

问题描述 在Web用户控件ascx文件,怎么使用ajax调用后台方法并传参? $.ajax({ type: "Post", url: "SetWidget.ascx/GetStr", data: "{'str':'我是','str2':'XXX'}", contentType: "application/json; charset=utf-8", dataType: "json", success: fun

js中function的参数是数组,要怎么传参

问题描述 js中function的参数是数组,要怎么传参 我在input中调用function,想向里面传一个数组,要怎么传 解决方案 var a=[1,2,3] 直接传a就行 解决方案二: <input type="button" onclick="yourfun([1,2,3,4,6])"/> 直接传就行了.不太明白问题的核心要问什么 解决方案三: fun([1,2,3]) 解决方案四: 不能直接传呀,需要传fun([[1,2,3]]),如果直接传[

Windows Powershell 定义函数_PowerShell

函数是自定义的Powershell代码,有三个原则: 简短:函数名简短,并且显而易见. 聚合:函数可以完成多个操作. 封装和扩展:将一批Powershell语句进行封装,实现全新的功能需求. 函数的结构由三部分组成:函数名,参数,函数体 复制代码 代码如下: Function FuncName (args[]) {       code; } 使用函数作为别名 假如Powershell不支持"cd.." 命令,你可以通过定义函数实现这个功能: 复制代码 代码如下: PS C:Power

JavaScript去除空格的三种方法(正则/传参函数/trim)_javascript技巧

方法一: 个人认为最好的方法.采用的是正则表达式,这是最核心的原理. 其次.这个方法使用了JavaScript 的prototype 属性 其实你不使用这个属性一样可以用函数实现.但这样做后用起来比较方便. 下面就来看看这个属性是怎么来用的. 返回对象类型原型的引用. objectName.prototype objectName 参数是对象的名称. 说明 用 prototype 属性提供对象的类的一组基本功能.对象的新实例"继承"赋予该对象原型的操作. 例如,要为 Array 对象添