标题: [文本处理] BAT批处理怎样替换文件中的数字? [打印本页]
作者: qiaosha 时间: 2014-4-23 11:53 标题: BAT批处理怎样替换文件中的数字?
- @echo on
- set var1= FILEVERSION 6,5,2,0
- rem echo %var1%
- set var1=!var1:0=%a%!
-
- set var2= PRODUCTVERSION 6,5,2,0
- rem echo %var2%
- set var2=!var2:0=%a%!
-
- set var3=VersionInfoVersion=6.5.2.0
- rem echo %var3%
- set var3=!var3:0=%a%!
-
- echo !var1!>>DsoFramerEx.rc
- echo !var2!>>DsoFramerEx.rc
- echo !var3!>>DsoFramerEx.rc
复制代码
用此脚本每此都是添加到文件的末位,对批处理不是很熟悉,忘大神帮帮忙,谢谢了。。
作者: Batcher 时间: 2014-4-23 12:26
请把替换之前的文本内容和替换之后的文本内容分别发出来看看
作者: qiaosha 时间: 2014-4-23 13:15
我引用文件中的一段话:文件附件上传不上来,被公司网络禁止了,
替换前:#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
作者: terse 时间: 2014-4-23 16:03
没有对0在行中 位置的判断 ;行中关键词自己添加- @echo off
- set "var=FILEVERSION PRODUCTVERSION VersionInfoVersion"
- set "a=10374"
- (for /f "delims=" %%i in ('findstr /in .* "C.txt"') do (
- set str=%%i
- setlocal enabledelayedexpansion
- set "str=!str:*:=!"
- if defined str for %%j in (%var%) do (
- if defined a if "!str:%%j=!" neq "!str!" (
- set a=&set "str=!str:0=%a%!"
- )
- )
- echo;!str!&endlocal
- ))>$
- move $ "C.txt"
- pause
复制代码
作者: qiaosha 时间: 2014-4-24 09:06
大神太牛了,可以替换数字了,
还有一个问题,我需要在一个文件夹下面查找所有相关的.txt文件,然后吧这些查找出来的文件进行数字替换,怎么使用啊?
作者: terse 时间: 2014-4-24 19:23
回复 5# qiaosha
这样试下- @echo off
- set "var=FILEVERSION PRODUCTVERSION VersionInfoVersion"
- set "a=10374"
- for /f "delims=" %%a in ('dir /a-d /b *.txt') do (
- (for /f "delims=" %%i in ('findstr /in .* "%%a"') do (
- set str=%%i
- setlocal enabledelayedexpansion
- set "str=!str:*:=!"
- if defined str for %%j in (%var%) do (
- if defined a if "!str:%%j=!" neq "!str!" (
- set a=&set "str=!str:0=%a%!"
- )
- )
- echo;!str!&endlocal
- ))>$
- move $ "%%a"
- )
- pause
复制代码
作者: qiaosha 时间: 2014-4-25 14:28
回复 6# terse
这个代码好像是同级的.txt文件可以替换,我需要找到这个目录下所有的目录的txt文件可以进行替换。
作者: terse 时间: 2014-4-25 20:14
回复 7# qiaosha
'dir 加S参数呢?
作者: qiaosha 时间: 2014-4-28 18:00
回复 8# terse
可以的,谢谢了!
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |