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

[文本处理] [已解决]批处理如何实现在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.文件中有时间段,如何根据当前时间替换原有时间?
1

评分人数

    • pcl_test: 发帖前先使用论坛搜索PB -2

这可以参考我发的那问题 稍微改改就能用

TOP

回复 2# ridora

谢谢
看了下你的帖子,好像问题依然还没有处理

TOP

  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');
复制代码

TOP

我这个只能在白天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
复制代码

TOP

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%
复制代码

TOP

看不懂 L4的内容。

TOP

回复 5# jrx401


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

TOP

版主(L4)过软厉害,通配符匹配我还有待学习

TOP

回复 4# pcl_test


    谢谢了,我在学习学习

TOP

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

TOP

返回列表