如何通过批处理删除文本中指定单词之后的所有内容
批处理实现删除文本中指定单词后所有内容的方法
你可以直接用原生Windows批处理实现需求,不需要安装任何第三方工具,以下是可直接运行的方案:
最简实现(适用于单行文本、关键词仅出现1次的场景)
你的myfile.txt是单行内容的话,用下面的短脚本即可:
@echo off setlocal enabledelayedexpansion :: 读取myfile.txt的第一行内容 set /p "content="<"myfile.txt" :: 截断cry之后的所有内容 set "content=!content:cry=cry&rem !" :: 将处理后的内容写回文件 > "myfile.txt" echo !content! endlocal
运行后原文件里的Hi my cry die fly 会被处理为Hi my cry,正好删除cry之后的所有字词。
多行文本适配版本
如果你的文件有多行内容,需要逐行处理的话用这个版本:
@echo off setlocal enabledelayedexpansion :: 逐行读取文件内容处理 (for /f "delims=" %%l in (myfile.txt) do ( set "line=%%l" if defined line set "line=!line:cry=cry&rem !" echo !line! ))>temp_tmp.txt :: 替换原文件 move /y temp_tmp.txt myfile.txt endlocal
注意事项
- 脚本需要和
myfile.txt放在同一目录下运行 - 运行前建议先备份原文件,避免误操作丢失内容
- 可以先把脚本里写回文件的行改成
echo !content!,先在控制台确认输出结果符合预期,再执行覆盖原文件的操作
内容的提问来源于stack exchange,提问作者OProgrammer
相关产品推荐
相关产品推荐

