Windows 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 www.mossfly.com正在 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:MyPingPING.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 : CommandNotFoundExceptionSuggestion [3,General]: 未找到命令 myPing,但它确实存在于当前位置。Windows Pow Shell 默认情况下不从当前位置加载命令。如果信任此命令,请改为键入 ".myPing"。有 关更多详细信息,请参阅 "get-help about_Command_Precedence"。
Powershell小技巧之获取注册表值的类型
当你不需要获取注册表数据类型而只要其值是非常简单的:你可以使用Get-ItemProperty:Get-ItemProperty-PathHKLM:SOFTWAREMicrosoftWindowsCurrentVersionRun如果你需要获
Powershell小技巧之用变量累积记录错误
当你使用GC查询文件时,当你没有足够的权限你可能会错过不少错误。你可以使用?ErrorActionSilentlyContinue忽略这些错误。有一个不错的方法来获取这些错
Powershell小技巧之获取对象可变的特征
当你得到一个有属性对象,它的一些值有的改变,有的则只能读取。这里有个技巧可以找出那些可以更改的属性。代码的有效范围是当前控制台,但你
标签:函数,控制台,定义,当你,命令