标题: [文本处理] 批处理如何修改 *.ini 文件的指定内容? [打印本页]
作者: luo1987 时间: 2012-6-13 18:36 标题: 批处理如何修改 *.ini 文件的指定内容?
CMD 命批处理修改*.ini文件
修改指定某行以
“pos_last_date=” 开头的行
改成pos_last_date=2012-06-13 (当前日期)
作者: luo1987 时间: 2012-6-13 18:37
pos_last_date= 不确为第几行
作者: weichenxiehou 时间: 2012-6-13 19:07
- gawk "BEGIN{\"date/t\"|getline date} {if($0 ~ /^pos_last_date=/) $0=\"pos_last_date=\" substr(date,1,10);print>FILENAME \".new\"}" *.ini
复制代码
因操作系统可能不同,可能需要改变时间格式。
作者: luo1987 时间: 2012-6-14 12:27
好像不行 我比较菜还请多多指导
作者: luo1987 时间: 2012-6-14 12:32
还是这个不是用CMD执行
作者: weichenxiehou 时间: 2012-6-14 13:26
gawk为第三方工具,需要自行下载,论坛里就有。
作者: luo1987 时间: 2012-6-14 13:50
自已找了个脚本但还是不行
请大侠指点下
、
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
作者: luo1987 时间: 2012-6-14 14:00
电脑比较不逐个装第三工具
要可以 用另类的方法不
比如用*.BAT 批处理
1、 date /t >X:\date.txt
再用VBS 把date.txt内容替换
作者: luo1987 时间: 2012-6-14 14:30
谢谢 weichenxiehou
实在不行也就只能逐个安装个第三方工具了
作者: powerbat 时间: 2012-6-14 15:28
修改当前目录下的所有ini文件,保存为*.xxx。检查如无问题可把代码中的“+'.xxx'”去掉,直接修改原文件。- @set @n=0//& dir /a-d/b *.ini |cscript -nologo -e:jscript "%~f0" &pause&exit/b
-
- fso = new ActiveXObject("Scripting.FileSystemObject");
- while (!WScript.StdIn.AtEndOfStream) {
- f = WScript.StdIn.ReadLine();
- s = fso.OpenTextFile(f).ReadAll();
- s = s.replace(/^(pos_last_date=)[^\r\n]*/gm, '$1' + today());
- with (fso.OpenTextFile(f+'.xxx', 2, true)) {Write(s); Close();}
- }
- function today()
- {
- var d = new Date();
- return (
- d.getFullYear()
- + '-' + (d.getMonth() + 101).toString().slice(1)
- + '-' + (d.getDate() + 100).toString().slice(1)
- );
- }
复制代码
作者: yangfengoo 时间: 2012-6-14 15:59
- @echo off&setlocal enabledelayedexpansion
- for %%a in (*.ini) do (
- for /f "tokens=*" %%b in ('type %%a^&del %%a') do (
- set #=%%b
- if "!#:~0,14!"=="pos_last_date=" (echo,pos_last_date=%date:~,10%) else (echo,%%b)
- )>>%%a
- )
复制代码
作者: luo1987 时间: 2012-6-15 13:41
谢谢各位高手
已测试OK
作者: luo1987 时间: 2012-6-17 19:38
谢谢 10楼 11楼 的朋友
加问一个问题
批处理做好了 通过共亨复制一了每台电脑
还做了个 创建快捷方式的 VBS脚本
想通过AT运*.VBS
net use \\pc001\D$ /user adminstrator:123456
AT \\PC001\D$\ D:\Program Files\pos_date\lnk.vbs
提示错误
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |