本帖最后由 WHY 于 2019-8-27 00:13 编辑
Test.ps1- $dic = New-Object 'System.Collections.Generic.Dictionary[string, int]';
- forEach( $a In (gc a.txt -ReadCount 0) ){ if( !$dic.ContainsKey($a) ){ $dic.Add($a, 1) }};
- $str = [IO.File]::ReadAllText('b.txt', [Text.Encoding]::Default);
- $str = [regex]::Replace($str, '(?i)[a-z\d][\w.-]+@([a-z\d][\w-]+\.){1,3}[a-z]{2,4}', {
- param($m);
- if( $dic.ContainsKey($m.Value) ){ '' } else { $m.Value }
- });
- [IO.File]::WriteAllText('c.txt', $str, [Text.Encoding]::Default);
复制代码 运行方法:1.右键单击,使用 PowerShell 运行;2.或者,在 CMD 窗口,cd /d 切换到脚本目录,输入:PowerShell -exec Bypass "&'.\Test.ps1'"
Test.JS- var map = [];
- var fso = new ActiveXObject('Scripting.FileSystemObject');
- var f1 = fso.OpenTextFile('a.txt', 1);
- var f2 = fso.OpenTextFile('b.txt', 1);
- while( !f1.AtEndOfStream ) map[f1.ReadLine()] = 1;
- var str = f2.ReadAll().replace(
- /[a-z\d][\w.-]+@([a-z\d][\w-]+\.){1,3}[a-z]{2,4}/ig,
- function($0){ return map[$0] ? '' : $0; }
- )
- fso.OpenTextFile('c.txt', 2, true).Write(str);
- WSH.Echo('Done');
复制代码
|