Удалить переменную пакетного файла в текстовом файле - PullRequest
0 голосов
/ 03 июня 2011

Я сейчас пытаюсь удалить переменную из командного файла, который находится в текстовом файле

например. удалить% переменную%

где% variable% = "test"

Таким образом, пакетный скрипт удалит экземпляр «test» в указанном текстовом файле

Можно ли это сделать?

Ответы [ 2 ]

0 голосов
/ 11 июня 2011

Чтобы избежать потенциальных проблем со специальными символами в строке, которую вы ищете, может быть лучше просто вызвать findstr напрямую следующим образом:

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

/ b и / e вместе будут совпадать только если "remove_line "- единственный текст в строке./ v переключит вывод для вывода только тех строк, которые не совпадают.

Если вы уверены, что не пропускаете специальные символы, это довольно легко обернуть в небольшой пакет и заменить строку удаления на% 1 или% * для использования переданных вами параметров.

К сожалению, вам нужно будет использовать временный файл - замена файла на месте не будет работать с перенаправлением вывода DOS.

ЕслиВы хотели удалить все вхождения указанного слова в любой строке, вероятно, batch и findstr не подходят для этого.Посмотрите на sed, который может сделать гораздо больше и находится в свободном доступе.Если вы не можете установить другую утилиту, даже vbscript с использованием cscript будет лучшим способом сделать это, чем пакетная обработка.

0 голосов
/ 03 июня 2011
@echo off
setlocal enabledelayedexpansion
set variable=test
for /f "delims=" %%l in (foo.txt) do (
  set "line=%%f"
  echo !line:%variable%=!
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...