PowerShell 瑞士军刀升级版
Email:zfive5@163.com
Author:zfive5(zidong)
引子
前些日子的PowerShell脚本发挥了作用,检查出了产品中这个那个问题,当然其他语言也可以使用,只是关键是它实现简单高效,如果在用熟了,简直就是如虎添翼呀。就像吕布碰上了赤兔马后。前些日子脚本例子有些不好的地方,总是心中有些疙瘩,经过这几天的改进越发的平整了。
代码
$website_path="c:/website/";
$fileList = get-childitem -path $website_path -include "*.js","*.html","*.htm","*.css","*.aspx" -recurse
$rn="`r`n";
$a1=new-object System.Text.StringBuilder;
$a2=@"
---------------------------------------------------
不能使用FileSystemObject组件,请修改
---------------------------------------------------
"@;
[void]$a1.Append($a2);
[void]$a1.Append($rn);
[void]$a1.Append($rn);
foreach($file1 in $fileList)
{
select-string -pattern '\.FileSystemObject' $file1 | foreach-object {
[void]$a1.Append($rn);
[void]$a1.Append("目录:");
[void]$a1.Append($_.path);
[void]$a1.Append($rn);
[void]$a1.Append("内容:");
[void]$a1.Append($_.Line);
[void]$a1.Append($rn);
[void]$a1.Append("行号:");
[void]$a1.Append($_.LineNumber);
[void]$a1.Append($rn);
}
}
$a1.ToString()|Out-File "c:\\检查结果.txt";
输出内容如下:
---------------------------------------------------
不能使用FileSystemObject组件,请修改
---------------------------------------------------
目录:c:/website/js/List.js
内容: var fso = new ActiveXObject("Scripting.FileSystemObject");
行号:3433
目录:c:/website/Js/ListHelper.js
内容: fso = new ActiveXObject("Scripting.FileSystemObject");
行号:1185
...
完美
其中换行转义字符找了半天,今天完成才找到是` ,而不是单引号
有些事情只是我们不知道,当知道那一刻突然觉得没有什么了。