Powershell小技巧之查找脚本中的函数

 更新时间:2014年09月28日 17:20:50   投稿:hebedich  
这篇文章主要介绍了使用Powershell查找脚本中的函数,非常简单实用,有需要的朋友可以参考下

要快速获取你PS脚本库中所有文件的函数名,你可以这样做:

复制代码 代码如下:

filter Find-Function
{
   $path = $_.FullName
   $lastwrite = $_.LastWriteTime
   $text = Get-Content -Path $path
   
   if ($text.Length -gt 0)
   {
      
      $token = $null
      $errors = $null
      $ast = [System.Management.Automation.Language.Parser]::ParseInput($text, [ref] $token, [ref] $errors)
      $ast.FindAll({ $args[0] -is [System.Management.Automation.Language.FunctionDefinitionAst] }, $true) |
      Select-Object -Property Name, Path, LastWriteTime |
      ForEach-Object {
         $_.Path = $path
         $_.LastWriteTime = $lastwrite
         $_
      }
   }
}

这将扫描出你用户配置文件夹下的所有PS脚本中的函数:

复制代码 代码如下:

PS> dir $home -Filter *.ps1 -Recurse -Exclude *.ps1xml | Find-Function
Name                       Path                       LastWriteTime          
----                       ----                       -------------          
Inject-LogonCredentials    C:\Users\Tobias\Desktop... 06.01.2014 02:43:00    
Test-Command               C:\Users\Tobias\Desktop... 06.03.2014 10:17:02    
Test                       C:\Users\Tobias\Desktop... 30.01.2014 09:32:20    
Get-WebPictureOriginal     C:\Users\Tobias\Desktop... 11.12.2013 11:37:53    
Get-ConnectionString       C:\Users\Tobias\Documen... 23.05.2014 10:49:09    
Convert-SID2User           C:\Users\Tobias\Documen... 23.05.2014 15:33:06    
Lock-Screen                C:\Users\Tobias\Documen... 19.03.2014 12:51:54    
Show-OpenFileDialog        C:\Users\Tobias\Documen... 16.05.2014 13:42:16    
Show-UniversalData         C:\Users\Tobias\Documen... 16.05.2014 13:23:20    
Start-TimebombMemory       C:\Users\Tobias\Documen... 23.05.2014 09:12:28    
Stop-TimebombMemory        C:\Users\Tobias\Documen... 23.05.2014 09:12:28    
(...)

将结果用管道传给Out-GridView 将能得到更完美的信息。

支持PS3.0及以后

相关文章

  • PowerShell中的转义字符是什么?

    PowerShell中的转义字符是什么?

    这篇文章主要介绍了PowerShell中的转义字符是什么?Powershell 的转义字符是`, 是tab键上面的按键,不是单引号,需要的朋友可以参考下
    2015-06-06
  • 探索PowerShell(五) PowerShell基础知识

    探索PowerShell(五) PowerShell基础知识

    在PowerShell中,我们可以轻松的与数据、对象进行交互,为了简化我们访问外部数据,PowerShell允许我们像操作驱动器、文件一样对数据、对象等进行操作
    2012-12-12
  • Powershell小技巧之从文件获取系统日志

    Powershell小技巧之从文件获取系统日志

    事件日志对于系统管理员的重要性自不待言,而基于图形界面的事件查看器毫无疑问是我们进行日志管理的首选工具,但绝不是最快捷的工具。其实,PowerShell提供了一种更简单的方式,利用它我们不仅可访问当前系统的事件日志,而且还可对数据进行排序、格式化等等。
    2014-10-10
  • PowerShell中定义多个变量并赋值的例子

    PowerShell中定义多个变量并赋值的例子

    这篇文章主要介绍了PowerShell中定义多个变量并赋值的例子,即一次性定义多个变量,这在其它的编程语言中也是常见的写法,需要的朋友可以参考下
    2014-08-08
  • Powershell实现监测服务器连通状态

    Powershell实现监测服务器连通状态

    这篇文章主要介绍了Powershell实现监测服务器连通状态,代码很简单,本文直接给出实现代码,需要的朋友可以参考下
    2015-05-05
  • PowerShell定义函数参数的2种方法和传参方法实例

    PowerShell定义函数参数的2种方法和传参方法实例

    这篇文章主要介绍了PowerShell定义函数参数的2种方法和使用方法实例,简洁易懂的好文,需要的朋友可以参考下
    2014-07-07
  • WMI入门教程之WMI中的类在哪里?

    WMI入门教程之WMI中的类在哪里?

    这篇文章主要介绍了WMI入门教程之WMI中的类在哪里?本文讲解了WMI中类的层次结构、常用WMI类、WMI类查找手册等内容,需要的朋友可以参考下
    2014-10-10
  • PowerShell脚本开发之对指定IP进行端口扫描

    PowerShell脚本开发之对指定IP进行端口扫描

    在本文通过一段小脚本的方式引入了通过PowerShell实现简单安全渗透功能的想法,首先介绍了该小脚本是如何实现功能的,接下来对创建脚本工具集并导入的方法,随后又在该工具集中创建了Test-TCPPort函数,并介绍了调用方法.
    2014-10-10
  • PowerShell小技巧之实现文件下载(类wget)

    PowerShell小技巧之实现文件下载(类wget)

    在.NET环境下提到下载文件大多数人熟悉的是通过System.Net.WebClient进行下载,这个程序集能实现下载的功能,但是有缺陷,事实上微软也提供了避免这些缺陷的程序集System.Net.HttpWebRequest和HttpWebResponse,本文将会使用这两个程序集来实现PowerShell版wget的功能。
    2014-10-10
  • PowerShell中使用ArrayList实现数组插入、删除、添加例子

    PowerShell中使用ArrayList实现数组插入、删除、添加例子

    这篇文章主要介绍了PowerShell中使用ArrayList实现数组插入、删除、添加例子,使用ArrayList效率更高、也更方便,需要的朋友可以参考下
    2014-08-08

最新评论