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