如何在Windows批处理文件中替换子字符串谁能告诉我使用批处理文件在Windows ...如何从文件中读取并替换字符串= bath从包含文件= bath Abath Bbath XYZbathABC用绳子hello使输出像hello Ahello Bhello XYZhelloABC
3 回答
翻翻过去那场雪
TA贡献2065条经验 获得超13个赞
SET string=bath Abath Bbath XYZbathABC
SET modified=%string:bath=hello%
ECHO %string%
ECHO %modified%
编辑
一开始没有看到你想要在替换之前从文件中读取字符串。
好吧,对于批处理文件,您没有太多处理文件的工具。在这种特殊情况下,您必须读取一行,执行替换,然后输出修改后的行,然后......那么呢?如果你需要在所有文件中替换'bath'的所有发生,那么你将不得不使用一个循环:
@ECHO OFF
SETLOCAL DISABLEDELAYEDEXPANSION
FOR /F %%L IN (file.txt) DO (
SET "line=%%L"
SETLOCAL ENABLEDELAYEDEXPANSION
ECHO !line:bath=hello!
ENDLOCAL
)
ENDLOCAL
您可以向文件添加重定向:
ECHO !line:bath=hello!>>file2.txt
或者,您可以将重定向应用于批处理文件。它必须是不同的文件。
编辑2
添加了适当的延迟扩展切换,以便正确处理具有批处理脚本语法特殊含义的某些字符,例如!,^et al。
- 3 回答
- 0 关注
- 2239 浏览
添加回答
举报
0/150
提交
取消