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

[文本处理] 批处理如何修改 *.ini 文件的指定内容?

CMD 命批处理修改*.ini文件
修改指定某行以
“pos_last_date=” 开头的行
改成pos_last_date=2012-06-13 (当前日期)

谢谢 10楼 11楼 的朋友
加问一个问题
批处理做好了 通过共亨复制一了每台电脑
还做了个 创建快捷方式的 VBS脚本
想通过AT运*.VBS
net use \\pc001\D$ /user adminstrator:123456
AT \\PC001\D$\ D:\Program Files\pos_date\lnk.vbs
提示错误

TOP

谢谢各位高手
已测试OK

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. for %%a in (*.ini) do (
  3.    for /f "tokens=*" %%b in ('type %%a^&del %%a') do (
  4.       set #=%%b
  5.       if "!#:~0,14!"=="pos_last_date=" (echo,pos_last_date=%date:~,10%) else (echo,%%b)
  6.     )>>%%a
  7. )
复制代码

TOP

修改当前目录下的所有ini文件,保存为*.xxx。检查如无问题可把代码中的“+'.xxx'”去掉,直接修改原文件。
  1. @set @n=0//& dir /a-d/b *.ini |cscript -nologo -e:jscript "%~f0" &pause&exit/b
  2. fso = new ActiveXObject("Scripting.FileSystemObject");
  3. while (!WScript.StdIn.AtEndOfStream) {
  4.   f = WScript.StdIn.ReadLine();
  5.   s = fso.OpenTextFile(f).ReadAll();
  6.   s = s.replace(/^(pos_last_date=)[^\r\n]*/gm, '$1' + today());
  7.   with (fso.OpenTextFile(f+'.xxx', 2, true)) {Write(s); Close();}
  8. }
  9. function today()
  10. {
  11.   var d = new Date();
  12.   return (
  13.     d.getFullYear()
  14.     + '-' + (d.getMonth() + 101).toString().slice(1)
  15.     + '-' + (d.getDate() + 100).toString().slice(1)
  16.   );
  17. }
复制代码

TOP

谢谢 weichenxiehou  
实在不行也就只能逐个安装个第三方工具了

TOP

电脑比较不逐个装第三工具
要可以 用另类的方法不
比如用*.BAT 批处理
1、 date /t >X:\date.txt
再用VBS 把date.txt内容替换

TOP

自已找了个脚本但还是不行
请大侠指点下


Const ForReading = 1
Const ForWriting = 2

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile("kmjxc.ini", ForReading)

Do Until objTextFile.AtEndOfStream
strNextLine = objTextFile.Readline

intLineFinder = InStr(strNextLine, "pos_last_date")
If intLineFinder <> 0 Then
strNextLine = "pos_last_date="date
End If


strNewFile = strNewFile & strNextLine & vbCrLf
Loop

objTextFile.Close

Set objTextFile = objFSO.OpenTextFile("kmjxc.ini", ForWriting)

objTextFile.WriteLine strNewFile
objTextFile.Close

TOP

gawk为第三方工具,需要自行下载,论坛里就有。
看得多说得多,远比不上写得多。

TOP

还是这个不是用CMD执行

TOP

好像不行 我比较菜还请多多指导

TOP

  1. gawk "BEGIN{\"date/t\"|getline date} {if($0 ~ /^pos_last_date=/) $0=\"pos_last_date=\" substr(date,1,10);print>FILENAME \".new\"}" *.ini
复制代码
因操作系统可能不同,可能需要改变时间格式。
看得多说得多,远比不上写得多。

TOP

pos_last_date= 不确为第几行

TOP

返回列表