zoukankan      html  css  js  c++  java
  • HTML js实现修改本地文件内容(windows)

    工作过程中, 不时的需要修改配置文件的内容,比如 设置访问服务器地址.因此需要逐层打开目录,来进行修改. 如果修改频繁,则会比较麻烦,因此需要一个脚本来进行修改.

    但是,

    var fso =new ActiveXObject("Scripting.FileSystemObject");
    只限于IE浏览器, 所以以下代码只适用于IE浏览器

    参考目录: 

    <html>
    <head>
        
        <title>修改ip</title>
        
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script language="JavaScript" type="text/javascript">
    
            // 需要修改的文件      var baseReal = "E:\win32\src\common\GameConfig.lua";
            // 定义一个临时文件
    var baseTemp = "E:\win32\src\common\GameConfig2.lua";
            // 设置被替换的内容
    var beanChange1 = "GameConfig.strHallIp = ip1"; var beanChange2 = "GameConfig.strHallIp = ip2"; var beanChange3 = "GameConfig.strHallIp = ip3"; var beanChange4 = "GameConfig.strHallIp = ip4"; var beanChange5 = "GameConfig.strHallIp = ip5";    function setServerIp(num){     var ForReading = 1, ForWriting = 2;      var fso =new ActiveXObject("Scripting.FileSystemObject");             // 创建一个临时文件       var fTemp = fso.CreateTextFile(baseTemp, true);
                // 以写入的方式进行文件打开       
    var f233 = fso.OpenTextFile(baseReal, ForReading, true);       var content1;        while(!f233.AtEndOfStream){        content1=f233.ReadLine();        fTemp.WriteLine(content1);        }        f233.Close();        fTemp.Close();        var fdelete3 = fso.GetFile(baseReal);        // 删除文件        fdelete3.Delete();           var fnew = fso.CreateTextFile(baseReal, false);        fTemp = fso.OpenTextFile(baseTemp, ForReading, false);          var content1;          var hasChange = false;          while(!fTemp.AtEndOfStream){          content1 = fTemp.ReadLine();          if(!hasChange && (content1 == beanChange1 ||content1 == beanChange2              ||content1 == beanChange3              ||content1 == beanChange4              ||content1 == beanChange5          )){            fnew.WriteLine(getContent(num));            hasChange = true;          }else{            fnew.WriteLine(content1);          }         }         fnew.Close(); fTemp.Close(); var fdelete2 = fso.GetFile(baseTemp); fdelete2.Delete(); } function getContent(num){ switch(num){ case 1: return beanChange1; case 2: return beanChange2; case 3: return beanChange3; case 4: return beanChange4; case 5: return beanChange5; } } </script> </head> <body>   <div style="display: ;" id= "div1" >     <input id="button1" type="button" onclick="setServerIp(1)" value="IP1">   </div>   <br/>   <div style="display: ;" id= "div2" >     <input id="button1" type="button" onclick="setServerIp(2)" value="IP2">   </div>   <br/>   <div style="display: ;" id= "div3" >     <input id="button1" type="button" onclick="setServerIp(3)" value="IP3">   </div>   <br/>   <div style="display: ;" id= "div4" >     <input id="button1" type="button" onclick="setServerIp(4)" value="IP4">   </div>   <br/>   <div style="display: ;" id= "div5" >     <input id="button1" type="button" onclick="setServerIp(5)" value="IP5">   </div> </body> </html>
  • 相关阅读:
    【基础算法】- 全排列
    【基础算法】- 2分查找
    区块链培训
    Static Binding (Early Binding) vs Dynamic Binding (Late Binding)
    test
    No data is deployed on the contract address!
    "throw" is deprecated in favour of "revert()", "require()" and "assert()".
    Variable is declared as a storage pointer. Use an explicit "storage" keyword to silence this warning.
    京都行
    Failed to write genesis block: database already contains an incompatible
  • 原文地址:https://www.cnblogs.com/xiaozhuan/p/6396584.html
Copyright © 2011-2022 走看看