如何在覆盖了get-childitem function后仍调用系统别本的get-childitem方法?


PowerShell交流中心分类: 变量-函数-脚本-条件-循环-参数如何在覆盖了get-childitem function后仍调用系统别本的get-childitem方法?
0
jason279 asked 9年 ago

由于项目中的需要(主要是因为我不太了解PS中的item那些命令而取巧),我在$pshome/profile.ps1中重新定义了function get-childitem()这个方法,这样就相当于覆盖了原本的get-childitem命令。本来这种实现虽然不太好,但是可以满足项目的需要,可是现在遇到个问题,就是这样覆盖之后,导致没办法调用原本的get-childitem命令,我现在想问的是如何在我的这个get-childitem命令中去调用系统原本的Get-ChildItem呢?简单写下我的function如下:
function get-childitem(){
param([string]$Path)
if($Path -eq ‘situation1’){
#do my job1
}elseif($Path -eq ‘situation2’){
#do my job2
}else{
#如何在这里调用系统本身的Get-ChildItem??
#也就是说有没有通过”全限定名”(java中的概念,就是指包名+类名)这种方式去让他调用系统的Get-ChildItem命令呢?
}
}

1 Answers
1
Best Answer
Mooser Lee 管理员 answered 9年 ago

PS> Get-Command Get-ChildItem
CommandType     Name                                               ModuleName
———–             —-                                                        ———-
Cmdlet          Get-ChildItem                                      Microsoft.PowerShell.Management
所以可以这样调用系统的Get-ChildItem

function Get-ChildItem{
 #这是我的Get-ChildItem
 Write-Host 'Get-ChildItem'
 #现在开始调用原始的Get-ChildItem
 Microsoft.PowerShell.Management\Get-ChildItem
}