转至:http://blog.csdn.net/kk185800961/article/details/49022395

函数基本操作:

[plain] view plain copy

  1. #创建函数
  2. Function GetSQLService
  3. {
  4. Get-Service -DisplayName "*SQL*"
  5. }
  6. #调用函数,直接写函数名
  7. GetSQLService
  8. #查看函数定义
  9. $Function:GetSQLService
  10. #导出函数定义到文本
  11. $Function:GetSQLService | Out-File E:\GetSQLService.ps1
  12. #删除函数
  13. del Function:GetSQLService
  14. #查看内部自定义函数:
  15. dir function: | ft -AutoSize

创建带参数的函数,三种方法(会覆盖同名函数):

[plain] view plain copy

  1. #创建带参数的函数,三种方法(会覆盖同名函数)
  2. Function GetSQLService($ServiceName)
  3. {
  4. Get-Service -DisplayName "*$ServiceName*"
  5. }
  6. Function GetSQLService
  7. {
  8. param($ServiceName)
  9. Get-Service -DisplayName "*$ServiceName*"
  10. }
  11. #有默认值的参数
  12. Function GetSQLService
  13. {
  14. param($ServiceName='SQL')
  15. Get-Service -DisplayName "*$ServiceName*"
  16. }
  17. #多个参数
  18. Function GetSQLService
  19. {
  20. param($ServiceName,$KeyWord)
  21. Get-Service -DisplayName "*$ServiceName*$KeyWord*" | Format-Table -AutoSize
  22. }

调用函数:

  1. GetSQLService
  2. GetSQLService SQL
  3. GetSQLService -ServiceName SQL
  4. GetSQLService -KeyWord MSSQLSERVER
  5. GetSQLService -ServiceName SQL -KeyWord MSSQLSERVER

万能参数,无需声明参数,直接使用内部参数:

[plain] view plain copy
  1. Function GetSQLService
  2. {
  3. Get-Service -DisplayName "*$args*"
  4. }


[plain] view plain copy

  1. #这里用其他参数名,调用时函数将无法识别参数,不可这样使用。只能用$args
  2. Function GetSQLService
  3. {
  4. Get-Service -DisplayName "*$ServiceName*"
  5. }

求和函数示例:

  1. #求和函数,调用函数时参数 $args 可以同时输入多个值。
  2. Function Add
  3. {
  4. $sum=0
  5. $args | foreach {$sum=$sum+$_}
  6. $sum
  7. }
  8. Add 1 2 3 4 5 6 7 8 9 10

返回多值的函数,也可使用 return 返回,使用 return 后函数将结束返回,后面语句不会执行

  1. Function Test { "Zero", "One", "Two", "Three" }
  2. Function Test
  3. {
  4. "Zero"
  5. "One"
  6. "Two"
  7. "Three"
  8. }
  9. Function Test { "Zero" "One" "Two" "Three" } #这样写错误!
  10. Function Test
  11. {
  12. "Zero"
  13. "One"
  14. return "Two"
  15. "Three"
  16. }

输出注释,不会作为结果:

  1. Function Test
  2. {
  3. Write-Host "此处为注释不作为结果,但同样会输出"
  4. "Zero"
  5. "One"
  6. return "Two"
  7. "Three"
  8. }
  9. Test
  10. $Test = Test

隐藏函数内部的错误:

  1. #函数内部有错误,调用时也返回错误!
  2. Function Test { Stop-Process -Name "kk123456" }
  3. #使用参数 $ErrorActionPreference 可隐藏错误
  4. Function Test
  5. {
  6. $ErrorActionPreference="SilentlyContinue"
  7. Stop-Process -Name "kk123456"
  8. $ErrorActionPreference="Continue"
  9. }

管道应用:函数内部处理上一个的结果集:

  1. Function Test { $input }
  2. 2,0,1,2 | Test
  3. Function Test
  4. {
  5. Foreach ($element in $input)
  6. {
  7. "value: "+$element
  8. }
  9. }
  10. 2,0,1,2 | Test

使用过滤器 Filter(特殊函数)的流模式处理管道数据,避免结果集太大占用过多内存或进程等待太久

[plain] view plain copy

  1. Filter Test
  2. {
  3. Foreach ($element in $input)
  4. {
  5. "value: "+$element
  6. }
  7. }
  8. 2,0,1,2 | Test


使用Filter时, $input 每次传递一个元素,不再是整个结果集,因此不必要了,用变量 $_ 替代

  1. Filter Test{ $_.name }
  2. Get-Service -DisplayName "*MSSQLSERVER*" | Test

函数在内部 process 也可以处理多结果集:

  1. Function Test{
  2. begin{ $i=1 }
  3. process{
  4. $_.name
  5. $i++
  6. }
  7. end{}
  8. }
  9. Get-Service -DisplayName "*MSSQLSERVER*" | Test

【转】PowerShell 函数(Function)的更多相关文章

  1. 函数(Function)作用域 / 远程函数执行

    函数跟变量一样也是有作用域的:Global.Script.Local.Private Global:作用于整个PowerShell会话,只要PowerShell会话不结束,被Global修饰的变量和函 ...

  2. Javascript自执行匿名函数(function() { })()的原理分析

    匿名函数指没有指定函数名或指针的函数,自执行匿名函数只是其中一种,下文中称这种函数为:自执行函数 下面是一个最常见的自执行函数: // 传统匿名函数 (function() { alert('hell ...

  3. JavaScript自运行函数(function(){})()的理解

    今天打开JQuery源文件(jquery-1.8.3), 看到JQuery的初始化过程是这样的 (function( window, undefined ) { // .... })( window ...

  4. 深入理解javascript中的立即执行函数(function(){…})()

    投稿:junjie 字体:[增加 减小] 类型:转载 时间:2014-06-12 我要评论 这篇文章主要介绍了深入理解javascript中的立即执行函数,立即执行函数也叫立即调用函数,通常它的写法是 ...

  5. javaScript的函数(Function)对象的声明(@包括函数声明和函数表达式)

    写作缘由: 平时再用js写函数的时候,一般都是以惯例 function fn () {} 的方式来声明一个函数,在阅读一些优秀插件的时候又不免见到 var fn = function () {} 这种 ...

  6. Javascript自执行匿名函数(function() { })()的原理浅析

    匿名函数就是没有函数名的函数.这篇文章主要介绍了Javascript自执行匿名函数(function() { })()的原理浅析的相关资料,需要的朋友可以参考下 函数是JavaScript中最灵活的一 ...

  7. Javascript学习之函数(function)

    在JS中,Function(函数)类型实际上是对象;每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法.由于函数是对象,因此函数名实际上也是一个指向函数对象的指针. 一 函 ...

  8. js立即执行函数: (function ( ){...})( ) 与 (function ( ){...}( ))

    ( function(){…} )() ( function (){…} () ) 是两种javascript立即执行函数的常见写法,最初我以为是一个括号包裹匿名函数,再在后面加个括号调用函数,最后达 ...

  9. 深入理解立即执行函数(function(){})();

    ( function(){-} )()和( function (){-} () )是两种javascript立即执行函数的常见写法,要理解立即执行函数,需要先理解一些函数的基本概念. 1,函数声明,函 ...

随机推荐

  1. 从零开始编写自己的C#框架(3)——开发规范(转)

    由于是业余时间编写,而且为了保证质量,对写出来的东西也会反复斟酌,所以每周只能更新两章左右,请大家谅解,也请大家耐心等待,谢谢大家的支持. 初学者应该怎样学习本系列内容呢?根据我自己的学习经验,一般直 ...

  2. poj1007-DNA Sorting(排序)

    一,题意: 输入N个字符串,按照字符串的逆序数由最少到最大开始输出. 注意:如果逆序数相同,就原来顺序输出. 二,思路步骤: 1,输入,并用a[]存储每行字符串的逆序数; 2,冒泡排序a[]的同时换掉 ...

  3. POJ 3177 Redundant Paths(边双连通的构造)

    Redundant Paths Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 13717   Accepted: 5824 ...

  4. 读书笔记:const和readonly、static readonly 那些事

    C#中表示不变的量(常量)的两种形式:const 和readonly const 是静态常量 readonly 是动态常量 严格的来讲:const 应该称为常量 而readonly 则应称为只读变量. ...

  5. 快速理解几种常用的RAID磁盘阵列级别

    我发现周围不少人在学习和理解RAID磁盘阵列的原理时,找了很多专业的资料来看,但是因为动手的机会比较少,因此看完以后还是似懂非懂,真正遇到实际的方案设计的时候,还是拿不定主意. 因此,我结合自己在过去 ...

  6. 一起来做chrome扩展《基础介绍》

    首先说明,chrome的扩展并不它的插件,网上很多说写插件,其实都是说的扩展.写扩展并不复杂,只要根据chrome提供的一系列的API进行就可以实现很多的功能.只是对API的学习是有代价的,加上国内访 ...

  7. 一起来做webgame,《Javascript蜘蛛纸牌》

    不得不说,做游戏是会上瘾的,这次带来的是win系统上的经典游戏<蜘蛛纸牌>,不能完美,但求一玩 移牌 0 次 Javascript game_蜘蛛纸牌 正在努力加载... // " ...

  8. Python中的对象类型的初步介绍

    一:介绍 1.为什么使用内置对象 对象类型是语言的一个部分 内置对象构成了每个python程序的核心部分 2.核心数据类型 数字 字符串 列表 字典 元组 文件 集合 其他类型 编程单元类型 与实现相 ...

  9. JAVA中去掉空格经典整理

    JAVA中去掉空格经典整理 JAVA中去掉空格          1. String.trim() --------------trim()是去掉首尾空格           2.str.replac ...

  10. CSS元素居中的常用方法

    只有普通流和绝对定位的元素可以设置居中,浮动元素是不存在居中的. 1.块级元素居中 1) 普通流元素(position : static 或 position : relative) 水平居中:{ m ...