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

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

  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
复制代码
用此脚本每此都是添加到文件的末位,对批处理不是很熟悉,忘大神帮帮忙,谢谢了。。

请把替换之前的文本内容和替换之后的文本内容分别发出来看看
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

我引用文件中的一段话:文件附件上传不上来,被公司网络禁止了,
替换前:#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

TOP

没有对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

评分人数

TOP

大神太牛了,可以替换数字了,
还有一个问题,我需要在一个文件夹下面查找所有相关的.txt文件,然后吧这些查找出来的文件进行数字替换,怎么使用啊?

TOP

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

TOP

回复 6# terse


    这个代码好像是同级的.txt文件可以替换,我需要找到这个目录下所有的目录的txt文件可以进行替换。

TOP

回复 7# qiaosha

'dir  加S参数呢?
1

评分人数

TOP

回复 8# terse


    可以的,谢谢了!

TOP

返回列表