删除文本文件中的批处理文件变量

时间:2011-06-03 10:05:42

标签: windows batch-file

我目前正在尝试从文本文件

中的批处理文件中删除变量

e.g。删除%变量%

其中%variable%=“test”

因此批处理脚本将删除指定文本文件中的“test”实例

可以这样做吗?

2 个答案:

答案 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也是比批处理更好的方法。