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



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

下面的批处理脚本将test.txt 中的每个"bath"更改为"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%

(复制自"如何替换windows批处理文件中的子字符串")

但我想做的是改变每一个△▽'到test.txt中的"换行符和xy"例如,如果test.txt是

abc△▽def

那么结果应该是

abc
xydef

在解决这个问题之前,我尝试了一个看起来更简单的问题:△▽'到"xy"。但这个看起来更容易的问题对我来说更难。我只是简单地把浴缸换成了△▽,和上面脚本中的xy打招呼。然后剧本就不起作用了。我想是因为△,▽是符号。

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

WHITE UP-POINTS TRIANGLE以UTF-8编码,包含3个字节,十六进制代码值为E2 96 B3WHITE DOWN-POINTS TRIANGLE包含E2 96 BD

如何使用Windows命令行环境查找和替换文件中的文本?包含关于如何使用控制台应用程序甚至仅使用Windows标准命令在批处理模式下替换字符串的几个答案和建议。

我最喜欢的此类替换工具是Clay's Utilities for Win32中的Xchang32.exe

重要提示:Xchang32.exe的作者、域clayruth.com的所有者Clay Ruth多年前去世。由于这个原因,带有该工具的ZIP文件在万维网中不再可用,尽管它被明确允许根据ZIP文件中的read-me文件免费分发该包。

这个控制台应用程序用字节替换字节,因此可以用于任何文件类型、二进制文件以及任何编码的文本文件。

此工具具有以下参数,可根据需要进行替换。

xchang32.exe Test.txt "^xE2^x96^xB3^xE2^x96^xBD" "^x0D^x0Axy"

所有△▽由回车(0D)和换行(0A)以及文件Test.txt中的字符xy代替。如果文件Test.txt是仅使用换行符作为行终止符的UNIX文件,请从替换字符串中删除^x0D

当然,像UltraEdit这样的支持UTF-8的文本编辑器也可以进行同样的替换,它甚至有一个Replace-inFiles命令,能够替换文件夹或文件夹树中所有文件中的UTF-8编码字符串。

最新更新