Board logo

标题: [文本处理] [已解决]批处理如何实现在txt文本末尾插入特定内容,如果特定内容已存在则进行替换? [打印本页]

作者: tengfly001    时间: 2016-6-29 14:49     标题: [已解决]批处理如何实现在txt文本末尾插入特定内容,如果特定内容已存在则进行替换?

本帖最后由 tengfly001 于 2016-6-30 10:37 编辑

请教个问大神?
例如,文件1.txt内容:
Language=CHN
UpdateSystem=0

1.文件中无时间段
我想增加一个时间段:time=201606291025,这个时间要通过批处理获得当前时间,处理后1.txt变为:
Language=CHN
UpdateSystem=0
time=201606291025

2.文件中有时间段,如何根据当前时间替换原有时间?
作者: ridora    时间: 2016-6-29 14:55

这可以参考我发的那问题 稍微改改就能用
作者: tengfly001    时间: 2016-6-29 15:08

回复 2# ridora

谢谢
看了下你的帖子,好像问题依然还没有处理
作者: pcl_test    时间: 2016-6-29 22:49

  1. //&cls&cscript -nologo -e:jscript "%~f0" "1.txt"&pause&exit
  2. function Add(i){return i<10?"0"+i:i;}
  3. var now = new Date();
  4. var dt = now.getFullYear()+Add((now.getMonth()+1))+
  5.     Add(now.getDate())+
  6.         Add(now.getHours())+
  7.             Add(now.getMinutes());
  8. var fso = new ActiveXObject('Scripting.Filesystemobject');
  9. var file = WSH.Arguments(0);
  10. var f = fso.OpenTextFile(file, 1);
  11. var txt = f.ReadAll()+'\r\n';
  12. var txt = /time=[^\r\n]+\s*$/.test(txt)?txt.replace(/(time=)[^\r\n]+\s*$/, '$1'+dt+'\r\n'):txt.replace(/[\r\n]*$/, '\r\n')+'time='+dt+'\r\n';
  13. f.Close();
  14. var f = fso.OpenTextFile(file, 2);
  15. f.Write(txt);
  16. f.Close();
  17. WSH.echo('Done');
复制代码

作者: jrx401    时间: 2016-6-29 22:57

我这个只能在白天10点到晚上12之前可以用。
只要是获取时间的部分,有问题。
可再请高手指点。
  1. @echo off
  2. set now=%date:~-10,4%%date:~-5,2%%date:~-2%%time:~0,2%%time:~3,2%%time:~6,2%
  3. echo time=%now%>>1.txt
  4. pause
复制代码

作者: GNU    时间: 2016-6-29 22:59

1_AddTime.bat
  1. @echo off
  2. findstr "time=" "1.txt" >nul 2>&1 && goto :eof
  3. for /f %%i in ('powershell -c "Get-Date -uformat '%%Y%%m%%d%%H%%M'"') do (
  4.     set "Now=%%i"
  5. )
  6. >>"1.txt" echo time=%Now%
复制代码

作者: jrx401    时间: 2016-6-29 23:03

看不懂 L4的内容。
作者: GNU    时间: 2016-6-29 23:19

回复 5# jrx401


可以用set命令的字符串替换功能把小时里面那个空格替换成0,参考:
http://bbs.bathome.net/thread-30336-1-1.html
作者: tengfly001    时间: 2016-6-30 10:32

版主(L4)过软厉害,通配符匹配我还有待学习
作者: tengfly001    时间: 2016-6-30 10:33

回复 4# pcl_test


    谢谢了,我在学习学习
作者: apython    时间: 2016-7-5 21:14

  1. set/a dat=%date:/=% 2>nul
  2. set/a tim=%time::=% 2>nul
  3. >>1.txt echo,%dat%%tim:~,-2%
复制代码





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