替换Windows批处理中的符号或换行符

时间:2015-03-28 14:26:46

标签: windows batch-file

我找到了一个将字符串更改为另一个字符串的批处理脚本。

在批处理脚本下面,将每个'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问好。然后脚本不起作用。我猜的原因是 - 因为△,▽是符号。

你能教我如何在引用的批处理脚本中表达符号或换行符吗?

1 个答案:

答案 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编码字符串。文件夹或文件夹树。