找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 28745|回复: 8

[文本处理] 【已解决】批处理如何实现每运行一次就对指定文本内的特定数字自增一/加一/加1/自增1

[复制链接]
发表于 2016-8-19 11:14:31 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2017-3-22 00:06 编辑

批处理如何实现运行一次,对指定文本内容中0001做自加一操作变0002
两个文件在同目录下:1.bat     1.txt
运行一次1.bat   对1.txt中的文本内容“0001”做一次加1操作,变为“0002”
再次运行1.bat   则“0002”变成“0003”
一次类推。


补充:
1.txt中的一部分文本示例如下:
Select
  ORDERINFO.ORDER_NO
From
  (ORDERINFO left join CLIENTINFO on CLIENTINFO.ID = ORDERINFO.CLIENT_ID) left join(ORDERDETAIL left join GOODSINFO on GOODSINFO.ID = ORDERDETAIL.GOODS_ID) on ORDERDETAIL.ORDER_ID = ORDERINFO.ID
Where
  ORDER_NO LIKE '%0001' AND
  BILLTYPE = '2';


Select
  CLIENTINFO.CLIENT_NAME
From
  (ORDERINFO left join CLIENTINFO on CLIENTINFO.ID = ORDERINFO.CLIENT_ID) left join(ORDERDETAIL left join GOODSINFO on GOODSINFO.ID = ORDERDETAIL.GOODS_ID) on ORDERDETAIL.ORDER_ID = ORDERINFO.ID
Where
  ORDER_NO LIKE '%0001' AND
  BILLTYPE = '2';

运行后、希望将代码中的0001 变0002。
依次类推

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2016-8-19 11:46:03 | 显示全部楼层
兄弟,求助,没要你低声下气,但最基本的把条件给足,顺带举个例子,这不是难事吧。

特别是这种替换的,随便写两句给你,不合适,又来改,浪费大家时间不是。
 楼主| 发表于 2016-8-19 12:37:03 | 显示全部楼层
回复 2# xxpinqz


    哥们。我也想贴个图表示清楚。我新手、第一次发 贴图被删帖了。。。我就不敢贴图了。。。。
 楼主| 发表于 2016-8-19 12:39:56 | 显示全部楼层
回复 2# xxpinqz


    哥们。我补充了一下。您看看这样可以吗
发表于 2016-8-19 14:10:03 | 显示全部楼层

  1. @echo off&setlocal enabledelayedexpansion
  2. (for /f "delims=" %%a in ('findstr /n .* 1.txt') do (
  3.      set "str=%%a"
  4.      if not "!str:LIKE '%%=!"=="%%a" (
  5.         if not defined n (
  6.                 for /f "tokens=2 delims='%%" %%b in ("%%a") do set "n=%%b"
  7.                 set /a m=1!n!+1
  8.         )
  9.         for /f "tokens=1,2" %%c in ("!n! !m:~-4!") do set "str=!str:%%c=%%d!"
  10.      )
  11.      echo,!str:*:=!
  12. ))>tmp
  13. move tmp 1.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2016-8-19 14:36:19 | 显示全部楼层
回复 5# xxpinqz


    大哥。我提的那个百度的问题是不是也是你回答的。多谢你了!
发表于 2016-8-20 11:08:36 | 显示全部楼层
  1. @if (0)==(0) echo off
  2. cscript //nologo //e:jscript "%~f0" < a.txt
  3. pause & exit
  4. @end

  5. var s = WSH.StdIn.ReadAll().replace(/\d{4}/g,function(s0){return (1*('1'+s0)+1+'').substr(1)});
  6. WSH.Echo(s)
复制代码
发表于 2016-8-20 11:10:24 | 显示全部楼层
  1. gawk "{if(match($0,/(.*'%%)([0-9]{4})('.*)/,a))$0=a[1]substr(("1"a[2])+1,2)a[3]};1" a.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2016-8-20 21:09:50 | 显示全部楼层
回复 8# WHY


    谢谢你的回答!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 14:13 , Processed in 0.017676 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表