博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PowerShell自定义函数定义及调用
阅读量:6098 次
发布时间:2019-06-20

本文共 1104 字,大约阅读时间需要 3 分钟。

PowerShell是一种命令集,也有自己的语法定义及函数。本文主要介绍如何自定义powershell函数及如何调用,当初在写PowerShell自定义函数的时候查阅了很多资料都没找到如何调用自定义函数,还是无意中从同事以前写的脚本中才知道方式奇特的PowerShell函数调用方式,以此记录下来,以方便后续参考。

PowerShell脚本语言和其他语言一样,powershell自定义函数也是以function打头,申明方式如下:

function(关键字) 函数名 (参数) {代码}

例如定义一个实现两数相加的函数

function Add ($x,$y) {     $n = $x + $y     Write-Host $n}
View Code

其实自定义函数很容易,只需要知道powershell基本语法就可以了,但是调用自定义函数就没有其他语言方便了,在调用自定义函数之前必须得告诉编译器函数存放的文件地址及名称,这样编译器才知道调用哪里的函数,其实也很容易理解。

具体调用方式如下:

. ($path + "functionDemo.ps1")  Add 2 3

这里$path为函数Add的绝地路径,functionDemo.ps1为函数所在的ps1文件名称,而自定义调用方式也和其他语言函数调用大不相同,格式为 函数名 第一参数 第二参数。请注意中间没有逗号,也没有括号,但是对于非自定义函数则必须使用括号

如何让powershell知道ps1文件存放的位置绝对位置呢,也就是这里的$path是怎么定义的。

一般我们不会去在ps1文件中写名绝对地址,例如在本例中也就是我们不会给$path赋值为C:\folder,而是让编译器运行本脚本的时候自动得到该文件的绝对地址,这样无论部署的时候将ps1文件放到哪里,都不需要更改任何设置。下面是获得powershell文件的绝对地址代码片段:

$0 = $MyInvocation.MyCommand.Definition $dp0 = [System.IO.Path]::GetDirectoryName($0)Write-Host $dp0
View Code

例子中会打印出执行该文件的文件绝对地址,如:“C:\Documents and Settings\Administrator\Desktop\Installation\installSTP”

这里GetDirectoryName就是非自定义函数,调用方式需要加括号。

 

转载于:https://www.cnblogs.com/bradwarden/p/3370260.html

你可能感兴趣的文章
在mac OS10.10下安装 cocoapods遇到的一些问题
查看>>
angularjs表达式中的HTML内容,如何不转义,直接表现为html元素
查看>>
css技巧
查看>>
Tyvj 1728 普通平衡树
查看>>
[Usaco2015 dec]Max Flow
查看>>
javascript性能优化
查看>>
多路归并排序之败者树
查看>>
java连接MySql数据库
查看>>
转:Vue keep-alive实践总结
查看>>
android studio修改新项目package名称
查看>>
深入python的set和dict
查看>>
C++ 11 lambda
查看>>
Hadoop2.5.0 搭建实录
查看>>
实验吧 recursive write up
查看>>
High-speed Charting Control--MFC绘制图表(折线图、饼图、柱形图)控件
查看>>
go test命令參数问题
查看>>
linux 搜索文本
查看>>
超实用Mac软件分享(二)
查看>>
Android JSON数据解析
查看>>
DEV实现日期时间效果
查看>>