bat中替换中文字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bat中替换中文字符串相关的知识,希望对你有一定的参考价值。

相对app_name的值替换,但是中文好像无法替换成功。下面是我写的:
@echo off & setlocal enabledelayedexpansion
cd D:\software\software\autopack\autopack\HPELSTK\res\values
set appname=大神支招
for /f "delims=" %%i in (strings.xml) do (
set a=%%i
set a=!a:大神求助=%appname%!
echo !a!=>>strings1.xml
)

/、<和>是特殊字符,显示它们需要用^号转义,在set命令中赋值时需要将变量名和变量值一起用双引号括起来。

@echo off
for /f "delims=" %%i in (strings.xml) do (
 setlocal enabledelayedexpansion
 set "a=%%i"
 set "a=!a:大神求助=大神支招!"
 if "!a:~0,1!" neq " " (
  echo ^!a!>>strings1.xml
 ) else (
  echo=>>strings1.xml
 )
 endlocal
)
echo=>t.tmp
for /f "delims=` tokens=* eol=`" %%a in (strings1.xml) do (
 setlocal enabledelayedexpansion
 set "a=%%a"
 set "a=!a:ECHO 处于关闭状态。=!"
 if "!a!"=="" (
  type t.tmp>>strings2.xml
 ) else (
  echo !a!>>strings2.xml
 )
 endlocal
)
del /f /q strings1.xml
del /f /q t.tmp
rename strings2.txt strings1.xml

参考技术A 在Windows自带的文档里 用替换功能 不是比批处理更快吗

bat文件中如何查找某个字符串并对其进行替换

比如abc.ini中有一个字符串g_istest=YES,怎么编写一个bat文件,实现查找这个字符串,并把YES替换为NO,bat菜鸟求大神指点,谢谢!

参考技术A Dim strFile: strFile = "c:\1.txt" Dim FSO: Set FSO = CreateObject("Scripting.FileSystemObject") Dim objFile: Set objFile = FSO.OpenTextFile(strFile) Dim strContent: strContent = objFile.Readall objFile.Close Dim objRegEx: Set objRegEx = CreateObject("VBScript.RegExp") objRegEx.Global = True objRegEx.IgnoreCase = True objRegEx.Pattern = "bxn" Dim objNewText: objNewText = objRegEx.Replace(strContent,"trg") Dim objTextFile: Set objTextFile = FSO.CreateTextFile("c:\op.vbs") objTextFile.Write objNewText Wscript.Quit

以上是关于bat中替换中文字符串的主要内容,如果未能解决你的问题,请参考以下文章

在 .bat 文件中使用 PowerShell,将一个字符串替换为多个字符串

使用 .bat 文件在目录中包含的多个文件中查找和替换字符串

bat命令怎么替换里面的字符串?

bat替换文本字符串!

bat SET中替换字符串(用变量代表需替换的字符串)

bat文件中如何查找某个字符串并对其进行替换