Board logo

标题: [文本处理] 批处理直接修改.ini文件内容 [打印本页]

作者: liuyanxi    时间: 2020-5-9 17:44     标题: 批处理直接修改.ini文件内容

如果需要更改目录下一个.ini文件内部的内容需要用到什么命令 亲。

例如:C:\BtSoft\mysql\MySQL5.5 文件夹下的 my.ini

basedir="C:/BtSoft/mysql/MySQL5.5/" (这个不需要更改)

datadir="C:/BtSoft/mysql/MySQL5.5/data/"

log-error="C:/BtSoft/mysql/MySQL5.5/data/mysql_error.log"

innodb_data_home_dir="C:/BtSoft/mysql/MySQL5.5/data/"

需要把下面三个路径都替换掉成为:C:/BtSoft/mysql/MySQL5.5/ 替换为:D:/MySQLData/路径。

求教各位大神给个完成的代码 非常感谢你们呢。

这个但是没替换掉my.ini
数据库需要修改my.ini文件中的内容。求大佬解惑。
作者: liuyanxi    时间: 2020-5-9 17:59

这个当时没替换掉my.ini
数据库需要修改my.ini文件中的内容。求大佬解惑。
作者: xp3000    时间: 2020-5-9 20:08

瘟都死操作
  1. @set @n=0;/* & echo off
  2. dir /b my.ini|cscript -nologo -e:jscript "%~0" ""
  3. exit/b & rem */
  4. arg = WScript.Arguments(0);
  5. fso = new ActiveXObject("Scripting.FileSystemObject");
  6. while (!WSH.StdIn.AtEndOfStream) {
  7.     f = WSH.StdIn.ReadLine();
  8.     txt = fso.OpenTextFile(f,1).ReadAll().replace(/(datadir|log-error|innodb_data_home_dir)=\"C:\/BtSoft\/mysql\/MySQL5\.5/g, '$1="D:/MySQLData');
  9.     fso.OpenTextFile(f,2).Write(txt);
  10. }
复制代码

作者: liuyanxi    时间: 2020-5-9 21:07

回复 3# xp3000


    您好 大佬,我复制您的代码过去貌似直接成bat没改动到。你能否下载喔的txt文件帮忙给加到里面? 您看可以吗?
完全新手。
作者: Batcher    时间: 2020-5-9 21:10

回复 1# liuyanxi


如果没有特殊的原因,不建议在代码里面修改 my.ini 内容。

可以考虑准备两个不同的文件,例如:
my.ini.bak1
my.ini.bak2
需要哪个就用哪个覆盖 my.ini 例如:
  1. copy /y my.ini.bak1 my.ini
复制代码

作者: xp3000    时间: 2020-5-9 21:44

my.ini和bat放入同一个目录运行,
先数据库复制一个出来测试,
没问题放入需要弄的目录,以后直接运行
作者: liuyanxi    时间: 2020-5-9 21:53

回复 5# Batcher


   非常感谢大佬。
作者: liuyanxi    时间: 2020-5-9 21:53

回复 6# xp3000


非常感谢大佬。
作者: liuyanxi    时间: 2020-5-9 23:32

回复 5# Batcher


    老大我想请问下。您的这句代码和 xcopy D:\CC\my.ini F:\EE\my.ini /y /e
有什么区别?
作者: Batcher    时间: 2020-5-11 09:49

回复 9# liuyanxi


    没啥大区别,都是实现同一个目的。




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