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

[文本处理] 批处理怎样替换指定内容并设置每个小时运行替换一次?

指定内容替换,最后能设置每个小时运行替换一次(第几位可以用逗号识别)

源txt
20210816230000,3439-1000,1,2,3,4,5,0,1,2,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,
20210816230000,3439-3,2,49,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,
20210816230000,7686-19,2,3,1,0,0,1,2,2,0,5,5,17,17,18,34,41,50,46,40,45,30,33,44,
20210816230000,7686-100001,0,14,9,5,6,10,27,43,26,38,54,74,22,10,9,4,13,24,9,6,11,4,5,10,

修改要求:(第几位可以用逗号识别)
3439-1000/7686-19后面的
第1位改成2
第2位改成4
第3位改成5
第4位改成7
第5位改成9
第6位改成10
第7位改成10

修改后txt
20210816230000,3439-1000,2,4,5,7,9,10,10,2,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,
20210816230000,3439-3,2,49,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,
20210816230000,7686-19,2,4,5,7,9,10,10,2,0,5,5,17,17,18,34,41,50,46,40,45,30,33,44,
20210816230000,7686-10001,0,14,9,5,6,10,27,43,26,38,54,74,22,10,9,4,13,24,9,6,11,4,5,10,

本帖最后由 idwma 于 2021-8-22 22:42 编辑
  1. @echo off
  2. :loop
  3. (for /f "tokens=1-10* delims=,-" %%a in (111.txt) do (
  4. if "%%b-%%c"=="3439-1000" (
  5. echo;%%a,%%b-%%c,2,4,5,7,9,10,10,%%k
  6. ) else if "%%b-%%c"=="7686-19" (
  7. echo;%%a,%%b-%%c,2,4,5,7,9,10,10,%%k
  8. ) else (
  9. echo;%%a,%%b-%%c,%%d,%%e,%%f,%%g,%%h,%%i,%%j,%%k
  10. )
  11. ))>222.txt
  12. move /y 222.txt 111.txt
  13. ping -n 3600 127.1>nul
  14. goto :loop
复制代码

TOP

回复 2# idwma


放在任务计划里面执行比较好。ping + loop 太浪费系统资源
  1. @echo off
  2. (for /f "tokens=1-9* delims=," %%a in ('type "D:\Test\1.txt"') do (
  3.     if "%%b" equ "3439-1000" (
  4.         echo %%a,%%b,2,4,5,7,9,10,10,%%j
  5.     ) else if "%%b" equ "7686-19" (
  6.         echo %%a,%%b,2,4,5,7,9,10,10,%%j
  7.     ) else (
  8.         echo %%a,%%b,%%c,%%d,%%e,%%f,%%g,%%h,%%i,%%j
  9.     )
  10. ))>"D:\Test\2.txt"
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2# idwma


如果是多个txt且带RS文件名  比如RS2021082201111.txt  RS2021082202112.txt  RS2021082203111.txt   原来的TXT移动到其他文件夹或者删除

TOP

回复 4# xiuan
  1. @echo off
  2. for /f "delims=" %%i in ('dir/b/s "D:\Test\rs*.txt"') do (
  3. (for /f "tokens=1-9* delims=," %%a in ('type "%%i"') do (
  4.     if "%%b" equ "3439-1000" (
  5.         echo %%a,%%b,2,4,5,7,9,10,10,%%j
  6.     ) else if "%%b" equ "7686-19" (
  7.         echo %%a,%%b,2,4,5,7,9,10,10,%%j
  8.     ) else (
  9.         echo %%a,%%b,%%c,%%d,%%e,%%f,%%g,%%h,%%i,%%j
  10.     )
  11. ))>"%%i.txt"
  12. del %%i
  13. )
复制代码

TOP

回复 5# idwma


    功能没问题,但是新的文件名称多了.txt

TOP

回复 6# xiuan


5楼第12行改成这样试试:
move /y "%%i.txt" "%%i"
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表