当前位置: 移动技术网 > IT编程>脚本编程>Shell > Windows Powershell 定义函数

Windows Powershell 定义函数

2017年12月08日  | 移动技术网IT编程  | 我要评论
函数是自定义的powershell代码,有三个原则: 简短:函数名简短,并且显而易见。 聚合:函数可以完成多个操作。 封装和扩展:将一批powershell语句进行封

函数是自定义的powershell代码,有三个原则:
简短:函数名简短,并且显而易见。
聚合:函数可以完成多个操作。
封装和扩展:将一批powershell语句进行封装,实现全新的功能需求。

函数的结构由三部分组成:函数名,参数,函数体

复制代码 代码如下:

function funcname (args[])
{
      code;
}

使用函数作为别名

假如powershell不支持”cd..” 命令,你可以通过定义函数实现这个功能:

复制代码 代码如下:

ps c:powershell> function cd.. { cd ..}
ps c:powershell> cd..
ps c:>

假如powershell不支持ping命令,也可以如法炮制:

复制代码 代码如下:

ps c:powershell> function ping2 { ping.exe  -n 1 $args }
ps c:powershell> ping2

正在 ping mossfly.com [116.255.205.70] 具有 32 字节的数据:
请求超时。

116.255.205.70 的 ping 统计信息:
    数据包: 已发送 = 1,已接收 = 0,丢失 = 1 (100% 丢失),

控制台上多行输入定义函数

复制代码 代码如下:

ps c:powershell> function myping
>> {
>> ping.exe  -n 1 $args
>> }
>>
ps c:powershell>

把函数精简成一行

你 可以将一个函数定义在一行上,但是这样阅读和理解起来就不方便,可以在每条命令后加分号进行分割。

复制代码 代码如下:

ps c:powershelltest> function cd...{ cd.. ; cd.. }
ps c:powershelltest> cd...
ps c:>

使用文本编辑器

函数可以在文本编辑器上编写,写完以后复制进powershell控制台即可。如果控制台设置为快速编辑模式,从记事本复制后,直接在控制台鼠标右键即可完成黏贴。

更新函数

如果要更新已经定义好的函数,简单的方法是重新定义,这样新的定义会覆盖旧的定义。但是如果函数代码没有保存副本,可以先将函数定义导出到ps文件,然后就可以编辑了。

复制代码 代码如下:

ps c:powershell> $function:myping | out-file myping.ps1
ps c:powershell> $function:myping

ping.exe  -n 1 $args

ps c:powershell> $function:myping | out-file myping.ps1
ps c:powershell> .myping.ps1
必须指定 ip 地址。
ps c:powershell> notepad.exe $$

删除函数

控制台定义的函数只会在当前会话生效,一旦控制台退出,会自动消失。在不关闭控制台的条件下删除一个已经定义好的函数,可是使用虚拟驱动器的方法:

复制代码 代码如下:

ps c:powershell> del function:myping
ps c:powershell> myping
无法将“myping”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的
拼写,如果包括路径,请确保路径正确,然后重试。
所在位置 行:1 字符: 7
+ myping <<<<
    + categoryinfo          : objectnotfound: (myping:string) [], commandnotfo
   undexception
    + fullyqualifiederrorid : commandnotfoundexception

suggestion [3,general]: 未找到命令 myping,但它确实存在于当前位置。windows pow
shell 默认情况下不从当前位置加载命令。如果信任此命令,请改为键入 ".myping"。有
关更多详细信息,请参阅 "get-help about_command_precedence"。

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网