2011-06-03 169 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將是比批處理更好的方法。

相關問題