Powershell小技巧之找出脚本中的错误

705 查看

找出脚本之中的语法错误从来就不是轻松的事情,但是可以这样去筛选:

filter Test-SyntaxError
{
  $text = Get-Content -Path $_.FullName
  if ($text.Length -gt 0)
  {
   $err = $null
   $null = [System.Management.Automation.PSParser]::Tokenize($text, [ref] $err)
   if ($err) { $_ }
  }
}

这个脚本中,你可以快速扫描一个目录或整个电脑中的PS文件找出他们中的语法错误。

下面例子将找寻用户目录下所有PS脚本的语法错误:

复制代码 代码如下:

PS> dir $home -Filter *.ps1 -Recurse -Exclude *.ps1xml | Test-SyntaxError

支持所有PS版本