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

先测试效率能否提高,其他要求再说
PS:修改了输出文件编码为UTF-8 文件名result.txt
另外 测试文件夹名为text 你自行修改代码第二行
  1. @if(0)==(0) echo off
  2. set "folder=text"
  3. dir "%folder%\*.*" /b /a-d /s |cscript.exe //NoLogo //E:JScript "%~f0"
  4. pause&exit
  5. @end
  6. function SaveText(filename, text, charset) {
  7.   var stream;
  8.   stream = new ActiveXObject("ADODB.Stream");
  9.   stream.type = 2;
  10.   stream.charset = charset;
  11.   stream.open();
  12.   stream.writeText(text);
  13.   stream.saveToFile(filename, 2);
  14.   stream.close();
  15. }
  16. var fso = new ActiveXObject('Scripting.FileSystemObject'),
  17. re = /(Code="|Name="|Tender=")([^"]+)"/img,
  18. result = ''
  19. while (!WSH.StdIn.AtEndOfStream){
  20.        var file = WSH.StdIn.ReadLine(),
  21.        f = fso.OpenTextFile(file,1),
  22.        content = f.ReadAll();
  23.        f.Close();
  24.        content.replace(re, function($a,$b,$c)
  25.        {
  26.            file += $c != null ? ( ' ' + $c ):'';
  27.        })
  28.        result += result != '' ? '\n' + file : file
  29. }
  30. SaveText("result.txt",result,"utf-8")
  31. WSH.Echo(result)
复制代码
  1. @echo off
  2. set "folder=text"
  3. powershell "[regex]$re = '(?smi)(?<=Name=\"^|Code=\"|Tender=\")([^^\"]*)';(dir %folder% -File -Recurse).FullName.ForEach({$_+ ' '+($re.Matches((gc $_ -Raw)).Value  -join ' ')}) | Out-File result.txt -Encoding utf8 "
  4. pause
复制代码

TOP

回复 9# 304802301

检查一下 bat文件和文本文件编码呢

TOP

回复 13# 304802301
不清楚你的环境,我这边测试了你的样本,正常获取到三个字段关键词 输出编码问题 JS修改了一下 再试一下呢

TOP

回复 14# 304802301
  1. @if(0)==(0) echo off
  2. set "folder=text"
  3. dir "%folder%\*.*" /b /a-d /s |cscript.exe //NoLogo //E:JScript "%~0"
  4. pause&exit
  5. @end
  6. function SaveText(filename, text, charset) {
  7.        var stream;
  8.        stream = new ActiveXObject("ADODB.Stream");
  9.        stream.type = 2;
  10.        stream.charset = charset;
  11.        stream.open();
  12.        stream.LoadFromFile(filename)
  13.        stream.Position = stream.Size
  14.        stream.writeText(text);
  15.        stream.saveToFile(filename, 2);
  16.        stream.close();
  17. }
  18. var fso = new ActiveXObject('Scripting.FileSystemObject'),
  19. re = /(Code="|Name="|Tender=")([^"]+)"/img,
  20. result = '';
  21. fso.CreateTextFile("result.txt", true);
  22. while (!WSH.StdIn.AtEndOfStream){
  23.        var file = WSH.StdIn.ReadLine(),
  24.        f = fso.OpenTextFile(file,1),
  25.        content = f.ReadAll();
  26.        f.Close();
  27.        content.replace(re, function($a,$b,$c)
  28.        {
  29.            file += $c != null ? ( ' ' + $c):'';
  30.        })
  31.        WSH.Echo(file)
  32.        SaveText("result.txt",file +'\n',"utf-8")
  33. }
复制代码

TOP

返回列表