我找到了一个将字符串更改为另一个字符串的批处理脚本。
在批处理脚本下面,将每个'bath'更改为test.txt中的'hello'
@echo off
setlocal enabledelayedexpansion
set INTEXTFILE=test.txt set OUTTEXTFILE=test_out.txt
set SEARCHTEXT=bath
set REPLACETEXT=hello
set OUTPUTLINE=
for /f "tokens=1,* delims=¶" %%A in ( '"type %INTEXTFILE%"') do (
SET string=%%A
SET modified=!string:%SEARCHTEXT%=%REPLACETEXT%!
echo !modified! >> %OUTTEXTFILE%
)
del %INTEXTFILE%
rename %OUTTEXTFILE% %INTEXTFILE%
(从How to replace substrings in windows batch file复制)
但我想要做的是将test.txt中的每个'△▽'改为'换行符和xy' 例如,如果test.txt是
abc△▽def
然后结果应该是
abc
xydef
在攻击这个问题之前,我尝试了更容易看的问题:将每个'△▽'改为'xy'。但这个看起来更容易看起来的问题对我来说甚至很难。我只是简单地将浴缸更改为△▽,并在上面的脚本中向xy问好。然后脚本不起作用。我猜的原因是 - 因为△,▽是符号。
你能教我如何在引用的批处理脚本中表达符号或换行符吗?
答案 0 :(得分:0)
WHITE UP-POINTS TRIANGLE 以UTF-8编码,包含3个字节,十六进制代码值E2 96 B3
和 WHITE DOWN-POINTS TRIANGLE E2 96 BD
。
How can you find and replace text in a file using the Windows command-line environment?包含几个答案,提供有关如何使用控制台应用程序甚至只是Windows标准命令以批处理模式替换字符串的建议。
我最喜欢的替换工具是来自 Clay的Win32实用程序的 Xchang32.exe 。
重要说明: Xchang32.exe 的作者Clay Ruth和域clayruth.com
的所有者多年前去世了。出于这个原因,使用此工具的ZIP文件在万维网上不再可用,尽管明确允许根据ZIP文件中的read me文件免费分发此软件包。
此控制台应用程序按字节替换字节,因此可用于任何文件类型,二进制文件以及任何编码的文本文件。
此工具包含以下参数,可根据需要进行替换。
xchang32.exe Test.txt "^xE2^x96^xB3^xE2^x96^xBD" "^x0D^x0Axy"
所有△▽
都替换为回车符(0D)和换行符(0A)以及文件xy
中的字符Test.txt
。如果文件Test.txt
是一个只使用换行符作为行终止符的UNIX文件,请从替换字符串中删除^x0D
。
当然,使用UTF-8识别文本编辑器(如UltraEdit)也可以完成相同的替换,甚至还有一个替换文件命令,能够替换所有文件中的UTF-8编码字符串。文件夹或文件夹树。