找出脚本之中的语法错误从来就不是轻松的事情,但是可以这样去筛选:
1
2
3
4
5
6
7
8
9
10
|
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版本