[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 Five66 于 2023-8-6 03:42 编辑

input.txt是输入文件名
output.txt是输出文件名
编码ascii
  1. @if (0)//==(0)// echo off&pause&cscript //nologo -e:jscript "%~f0"&pause&exit
  2. @end
  3. var inf,otf,sstr,estr,s,bbb;
  4. inf="input.txt";
  5. otf="output.txt";
  6. sstr="Array.prototype.p = Array.prototype.push;";
  7. estr="delete(Array.prototype.p);";
  8. var fso=new ActiveXObject('scripting.filesystemobject');
  9. inf=fso.OpenTextFile(inf,1,false);
  10. otf=fso.OpenTextFile(otf,2,true);
  11. s='';bbb=0;
  12. while(!inf.AtEndOfStream){
  13. s=inf.ReadLine();
  14. if(s==estr){break;}
  15. if(bbb && s){otf.WriteLine(s);s='';}
  16. if(s==sstr){bbb=1;}
  17. }
  18. inf.Close();otf.Close();fso=null;
复制代码

TOP

回复 11# kidzgy

呃,测试文件是utf-8 bom编码的,而且换行符是LF,试试下面的

test.html为输入文件名
output.txt为输出文件名,输出文件编码跟换行符都跟测试文件一样的
代码保存为ansi就行了
  1. #@&cls&pause&powershell "gc -literalpath '%~f0'|out-string|iex"&pause&exit
  2. $inf="test.html"
  3. $otf="output.txt"
  4. $sstr="Array.prototype.p = Array.prototype.push;"
  5. $estr="delete(Array.prototype.p);"
  6. $inf=[io.file]::OpenRead($pwd.path+"\$inf")
  7. $otf=[io.file]::OpenWrite($pwd.path+"\$otf")
  8. $infrd=[System.IO.StreamReader]::new($inf,[text.encoding]::UTF8)
  9. $otfwd=[System.IO.StreamWriter]::new($otf,[text.encoding]::UTF8)
  10. $otfwd.NewLine=("`n")
  11. $s='';$bbb=0;
  12. while(!$infrd.EndOfStream){
  13. $s=$infrd.ReadLine()
  14. if($s){
  15. $ss=$s.Trim()
  16. if(($ss.Length -ge $estr.Length) -and ($ss.SubString(0,$estr.Length) -eq $estr)){break;}
  17. if($bbb){$otfwd.WriteLine($s);$s='';}
  18. if(($ss.Length -ge $sstr.Length) -and ($ss.SubString(0,$sstr.Length) -eq $sstr)){$bbb=1;}
  19. }}
  20. $infrd.Close();$otfwd.Close()
复制代码

TOP

返回列表