批量替换的bat,如何进行包含等号的字符串替换?

你好,学习了您的用于批量替换的bat,但是如果要实现将LOCAL_CODEPAGE=windows-936-2000替换成LOCAL_CODEPAGE=cp1252,做了一些调试,都没有实现,特向您讨教.
请注意,必须包含等号的两个字符串替换

如果替换的是一整行就比较简单,如果不是一整行,而是一行中的一部分就很有些麻烦
写个简单的且只考虑需要替换的只一行:
@echo off
set f=xx.ini
set s1=LOCAL_CODEPAGE=windows-936-2000
set s2=LOCAL_CODEPAGE=cp1252
for /f "delims=:" %%a in (findstr/in "%s1%" "%f%")do set n=%%a
(for /f "tokens=1* delims=:" %%a in ('findstr/n ".*" "%f%"')do (
if %%a equ %n% (echo.%s2%)else echo.%%b
))>newfile
move newfile "%f%"
echo 替换完毕&ping -n 2 127.1>nul
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-06-22
撒爱上

批量替换的bat,如何进行包含等号的字符串替换?
写个简单的且只考虑需要替换的只一行:echo off set f=xx.ini set s1=LOCAL_CODEPAGE=windows-936-2000 set s2=LOCAL_CODEPAGE=cp1252 for \/f "delims=:" %%a in (findstr\/in "%s1%" "%f%")do set n=%%a (for \/f "tokens=1* delims=:" %%a in ('findstr\/n ".*" "%f%"')do ...

bat文件 字符替换
set aa=%%a set aa=!aa:原字符=新字符!if "!aa!" neq "" echo !aa!>>新文件.txt )

bat求助:将某个路径下的全部txt中 abc全部替换成def 后剪切至一个新的...
echo off&Setlocal EnableDelayedExpansion set "d=c:\\123\\"\/\/等号后面改成你要剪切到的那个文件夹完整路径,该文件夹必须是存在的 for %%i in (*.txt) do (set "fp=%%i"&set "fn=%%~ni"if exist "%d%!fp!" call :lp "(2)"&exit call :lp )exit :lp ((for \/f "usebackq delims...

bat 字符去掉等号
set a=vid=83886987 for \/f "tokens=1* delims=* " %%i in ('echo %a%') do set a=%%i%%j echo %a

求一段BAT- 关于替换文本内容的bat
::提取2.txt中内容 set\/p str=<2.txt ::逐行替换 (for \/f "tokens=1* delims=:" %%i in ('findstr \/n .* 1.lst') do (set "var=%%j"if defined var (set "var1=!var:password --=!") else set var1= if "!var!"=="!var1!" (echo,!var!) else (echo,password --...

bat文件修改ini文件指定带等号内容
echo off(for \/f "delims=" %%i in (c:\\Hello.ini) do (for \/f "tokens=1* delims==" %%o in ("%%~i") do (if \/i "%%o"=="bat_res" (echo.%%o=0) else (echo.%%i)) ))>_d.inimove _d.ini c:\\Hello.ini

bat 如何将两个字符串变量联合在一起?
可以写成set val = %VarA%%VarB%,但是由于赋值问题,建议前后加上引号。例如:echo off rem 两个变量拼接,等号前后一定不要有空格 set str1=Hello set str2=world set result=“%str1%, %str2%”echo %result

批处理如何实现文本文件中指定行内容的替换?
1、首先,准备一个conf.ini,内容如下图所示。现在要将title的值修改“我是新标题”。2、如果ini内的文件比较简单,其次可以直接新生成一个。3、运行一下代码,效果如下,可以看到ini内容已经修改。4、假设不知道ini的具体内容,只是知道其中有“我是新标题”,现在要将“我是新标题”替换成"newtitle"...

为什么我的bat里10000减或加1都不行?
你的第六行语句的写法有问题:set \\a j=%j%+1 要改成:set \/a j=%j%+1 注意斜杆的方向。最简洁的写法是:set \/a j+=1

如何在批处理命令行中进行逻辑运算? 比如我要判断一个变量a的值,如果...
set命令 var变量名 字a是要进行字符替换的变量的值,"."为要替换的值,"伤脑筋"为替换后的值!执行后就会把变量%a%里面的"."全部替换为"伤脑筋"这就是set的替换字符的很好的功能!③下面看这个,%PATH:~10,5% 这个什么意思,看例子:@echo offset a=bbs.verybat.cnset var=%a:~1,2%echo %var%pause执行...

相似回答