PowerShell 瑞士军刀升级版

本文分享了一段优化后的PowerShell脚本,该脚本能够高效地扫描指定目录下的多种文件类型(如JS、HTML等),查找并报告使用了禁用组件FileSystemObject的相关信息,包括文件路径、具体代码行及行号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

...

完美


其中换行转义字符找了半天,今天完成才找到是` ,而不是单引号

 


 

有些事情只是我们不知道,当知道那一刻突然觉得没有什么了。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值