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

[文本处理] BAT批处理怎样替换文件中的数字?

[复制链接]
发表于 2014-4-23 11:53:47 | 显示全部楼层 |阅读模式
  1. @echo on
  2. set var1= FILEVERSION 6,5,2,0
  3. rem echo %var1%
  4. set var1=!var1:0=%a%!

  5. set var2= PRODUCTVERSION 6,5,2,0
  6. rem echo %var2%
  7. set var2=!var2:0=%a%!

  8. set var3=VersionInfoVersion=6.5.2.0
  9. rem echo %var3%
  10. set var3=!var3:0=%a%!

  11. echo !var1!>>DsoFramerEx.rc
  12. echo !var2!>>DsoFramerEx.rc
  13. echo !var3!>>DsoFramerEx.rc
复制代码
用此脚本每此都是添加到文件的末位,对批处理不是很熟悉,忘大神帮帮忙,谢谢了。。
发表于 2014-4-23 12:26:36 | 显示全部楼层
请把替换之前的文本内容和替换之后的文本内容分别发出来看看
 楼主| 发表于 2014-4-23 13:15:24 | 显示全部楼层
我引用文件中的一段话:文件附件上传不上来,被公司网络禁止了,
替换前:#ifndef _MAC
/////////////////////////////////////////////////////////////////////////////
//
// Version
//

VS_VERSION_INFO VERSIONINFO
FILEVERSION 6,5,2,0
PRODUCTVERSION 6,5,2,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x1L
FILESUBTYPE 0x0L

替换后:#ifndef _MAC
/////////////////////////////////////////////////////////////////////////////
//
// Version
//

VS_VERSION_INFO VERSIONINFO
FILEVERSION 6,5,2,10374
PRODUCTVERSION 6,5,2,10374
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x1L
FILESUBTYPE 0x0L
发表于 2014-4-23 16:03:17 | 显示全部楼层
没有对0在行中 位置的判断 ;行中关键词自己添加

  1. @echo off
  2. set "var=FILEVERSION PRODUCTVERSION VersionInfoVersion"
  3. set "a=10374"
  4. (for /f "delims=" %%i in ('findstr /in .* "C.txt"') do (
  5.     set str=%%i
  6.     setlocal enabledelayedexpansion
  7.     set "str=!str:*:=!"
  8.     if defined str for %%j in (%var%) do (
  9.         if defined a if "!str:%%j=!" neq "!str!" (
  10.            set a=&set "str=!str:0=%a%!"
  11.         )
  12.     )
  13.     echo;!str!&endlocal
  14. ))>$
  15. move $ "C.txt"
  16. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
qiaosha + 1 技术牛人

查看全部评分

 楼主| 发表于 2014-4-24 09:06:38 | 显示全部楼层
大神太牛了,可以替换数字了,
还有一个问题,我需要在一个文件夹下面查找所有相关的.txt文件,然后吧这些查找出来的文件进行数字替换,怎么使用啊?
发表于 2014-4-24 19:23:37 | 显示全部楼层
回复 5# qiaosha
这样试下

  1. @echo off
  2. set "var=FILEVERSION PRODUCTVERSION VersionInfoVersion"
  3. set "a=10374"
  4. for /f "delims=" %%a in ('dir /a-d /b *.txt') do (
  5.     (for /f "delims=" %%i in ('findstr /in .* "%%a"') do (
  6.          set str=%%i
  7.          setlocal enabledelayedexpansion
  8.          set "str=!str:*:=!"
  9.          if defined str for %%j in (%var%) do (
  10.             if defined a if "!str:%%j=!" neq "!str!" (
  11.                set a=&set "str=!str:0=%a%!"
  12.             )
  13.          )
  14.          echo;!str!&endlocal
  15.      ))>$
  16.      move $ "%%a"
  17. )
  18. pause
复制代码
 楼主| 发表于 2014-4-25 14:28:35 | 显示全部楼层
回复 6# terse


    这个代码好像是同级的.txt文件可以替换,我需要找到这个目录下所有的目录的txt文件可以进行替换。
发表于 2014-4-25 20:14:24 | 显示全部楼层
回复 7# qiaosha

'dir  加S参数呢?

评分

参与人数 1技术 +1 收起 理由
qiaosha + 1 技术牛人

查看全部评分

 楼主| 发表于 2014-4-28 18:00:57 | 显示全部楼层
回复 8# terse


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

本版积分规则

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

GMT+8, 2026-3-21 04:30 , Processed in 0.040546 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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