Board logo

标题: [文本处理] 批处理如何将逢4的半角空格替换为全角空格? [打印本页]

作者: xp3000    时间: 2023-12-28 10:50     标题: 批处理如何将逢4的半角空格替换为全角空格?

几十mb大容量TXT文本有大量半角空格,
读取半角空格部分,将每4次出现的半角空格替换为全角空格,
如何快速替换?
作者: Five66    时间: 2023-12-28 12:47

用powershell或vbs或jscript或其他
作者: xp3000    时间: 2023-12-28 13:54

本帖最后由 xp3000 于 2023-12-28 14:06 编辑
  1. //&cls&dir /b *.txt|cscript -nologo -e:jscript "%~f0"&pause&exit
  2. fso = new ActiveXObject("Scripting.FileSystemObject");
  3. while (!WSH.StdIn.AtEndOfStream) {
  4.     f = WSH.StdIn.ReadLine();
  5.     content = fso.OpenTextFile(f,1).ReadAll();
  6. var newContent = '';
  7. var count = 0;
  8. // 遍历字符串中的每个字符
  9. for (var i = 0; i < content.length; i++) {
  10.     var char = content.charAt(i);
  11.     if (char == ' ') {
  12.         count += 1;
  13.         if (count == 4) {
  14.             count = 0;
  15.             newContent += ' ';
  16.         } else {
  17.             newContent += char;
  18.         }
  19.     } else {
  20.         newContent += char;
  21.     }
  22. }
  23.     fso.OpenTextFile(f,2,true).Write(newContent);
  24. }
复制代码
效率不高
作者: _avatar_    时间: 2023-12-28 18:06

回复 3# xp3000


    都用 javascript 了,那可以考虑更方便的正则呀!
content.replace(/半角空格/g, function() { return count++ != 0 && count % 4 == 0 ? 全角空格 : 半角空格;}

把上面中文替换成对应的全角或半角空格就可以啦。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2