[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 29# kidzgy


    比如,把 1.txt 中的 abc 改成 xyz
  1. gawk -v "IGNORECASE=1" "{print $0=gensub(/abc/,\"xyz\",\"g\")>\"1.txt\"}" 1.txt
复制代码

TOP

回复 30# terse


    这个管用,谢谢!感觉ps比bat+第三方复杂好多!

TOP

回复 31# WHY


    感谢!!现在是更加完善了!

TOP

回复 33# kidzgy
直接正则替换效率提高的  练手一下
PS
  1. <# :
  2. @echo off
  3. PowerShell -NoProfile -C ". ([ScriptBlock]::Create((gc -Literal '%~f0') -join \"`r`n\"))"
  4. pause & exit/b
  5. #>
  6. $oid = [Io.Directory]::GetCurrentDirectory() -replace '\\','\\'
  7. $pat = '(?<="path":")[^"]+(?=\\\\Profiles\\\\extensions\\\\|\\\\browser\\\\features\\\\)'
  8. $(gc extensions.json -Raw -Encoding UTF8) -replace $pat , $oid | sc 'extensions.json' -Encoding UTF8
复制代码
JS代码长,效率不低
  1. @if(0)==(0) @echo off
  2. set "file=extensions.json"
  3. set "ph=%~dp0"
  4. cscript.exe -NoLogo -E:JScript %0  "%file%" "%ph:~,-1%"
  5. PAUSE & exit/b
  6. @end
  7. function adoLoadText(filename, charset) {
  8.     stream = new ActiveXObject("ADODB.Stream");
  9.     stream.type = 2;
  10.     stream.charset = charset;
  11.     stream.open();
  12.     stream.loadFromFile(filename);
  13.     text = stream.readText(-1);
  14.     stream.close();
  15.     return(text);
  16. }
  17. function adoSaveText(filename, text) {
  18.   var stream;
  19.   stream = new ActiveXObject("ADODB.Stream");
  20.   stream.type = 2;
  21.   stream.charset ='utf-8';
  22.   stream.open();
  23.   stream.writeText(text);
  24.   stream.saveToFile(filename, 2);
  25.   stream.close();
  26. }
  27. var file = WSH.Arguments.Item(0);
  28. var p = WSH.Arguments.Item(1).replace(/\\/g,"\\\\");
  29. var jsontext =adoLoadText(file, "UTF-8");
  30. var re =/("path":")[^"]+(?=\\\\Profiles\\\\extensions\\\\|\\\\browser\\\\features\\\\)/ig;
  31. adoSaveText('extensions.json',jsontext.replace( re, function($a,$b ) {return($b+p)}));
复制代码

TOP

回复 34# terse


    第二段代码提示(UTF-8编码)
  1. 输入错误: 无法找到脚本文件“D:\Firefox107 - 副本\profiles\123.bat聽聽extensions.json”。
复制代码
或者(GBK编码或ANSI编码)
  1. CScript 错误: 加载脚本“D:\Firefox107 - 副本\profiles\123.bat??extensions.json”失败(文件名、目录名 或卷标语法不正确。 )。
复制代码

TOP

回复 35# kidzgy
我这边测试的是你发的extensions.json文件,都通过测试,系统win10
会不会文件编码问题

TOP

回复 36# terse

我知道是什么原因了,是我火狐浏览器的问题,107版本在复制时,会有【<0xa0>】 的特别空白符,导致批处理运行失败。在106版本或换成EDGE浏览器时则无此情况,这应该是火狐107独有的BUG。
   

TOP

返回列表