我目前正在尝试从文本文件
中的批处理文件中删除变量e.g。删除%变量%
其中%variable%=“test”
因此批处理脚本将删除指定文本文件中的“test”实例
可以这样做吗?
答案 0 :(得分:0)
@echo off
setlocal enabledelayedexpansion
set variable=test
for /f "delims=" %%l in (foo.txt) do (
set "line=%%f"
echo !line:%variable%=!
)
答案 1 :(得分:0)
为了避免您正在搜索的字符串存在潜在的特殊字符问题,最好直接调用findstr,如下所示:
type input.txt | findstr /b /e /v "remove_line" > input_without_remove_line.txt
只有“remove_line”是一行中的唯一文本时,/ b和/ e才会匹配。 / v将切换输出仅打印所有不匹配的行。
如果您确定没有传递特殊字符,则很容易将其包装在一个小批量中,并用%1或%*替换删除行以使用传递的参数。
不幸的是,您将需要使用临时文件 - 替换该文件不适用于DOS输出重定向。
如果您想删除任何行中指定单词的所有实例,则批处理和findstr可能不是这样做的方法。看看sed,它可以做更多,可以免费使用。如果你不能安装另一个实用程序,即使是使用cscript的vbscript也是比批处理更好的方法。