2011-06-03 139 views
0

我正在尝试从文本文件中的批处理文件中删除变量删除文本文件中的批处理文件变量

例如,删除%变量%

其中%变量%=“测试”

所以批处理脚本会在指定的文本文件

删除“测试”的实例可以这样做吗?

回答

0
@echo off 
setlocal enabledelayedexpansion 
set variable=test 
for /f "delims=" %%l in (foo.txt) do (
    set "line=%%f" 
    echo !line:%variable%=! 
) 
+0

嗨,我得到无效的参数SETLOCAL – Jay 2011-06-03 10:12:06

+0

谢谢,但它似乎不工作:( – Jay 2011-06-03 10:14:02

0

为了避免与您正在搜索的字符串潜在特殊字符的问题,它可能是更好的只是调用FINDSTR直接像这样:

type input.txt | findstr /b /e /v "remove_line" > input_without_remove_line.txt 

/B和/ E一起将只匹配,如果“remove_line”是一行中唯一的文本。/v将切换输出以仅打印所有不匹配的行。

如果你确信你没有经过特殊字符,这是很容易将保鲜膜,在一个小批量替换%1或%*使用您传递的参数删除线。

不幸的是,您将需要使用一个临时文件 - 在适当的位置替换文件不适用于DOS输出重定向。

如果您想要删除任意行中指定单词的所有实例,批处理和findstr可能不是执行此操作的方式。看看sed,它可以做更多并且可以免费使用。如果你不能安装另一个实用程序,甚至使用cscript的vbscript将是比批处理更好的方法。

相关问题