2015-01-23 2 views
1

У меня есть текстовый файл с одним URL-адресом на строку, заключенный в <link> </link > теги. ECHO-in variablee (включая теги) отлично работает, но теперь я хотел бы удалить теги. escaping угловые скобки с одним или несколькими символами не работают. вот кодЗамена угловых скобок в переменных

FOR /F "tokens=* USEBACKQ" %%F IN (`findstr "<link>" test.txt`) DO (
SET what=%%F 
SET result=%what:<link>=% 
ECHO %result% 
) 

есть другой способ сделать это?

ответ

1

Вам нужно delayed expansion и цитаты, когда вы используете> или <:

@echo off 
setlocal enableDelayedExpansion 
FOR /F "tokens=* USEBACKQ" %%F IN (`findstr "<link>" test.txt`) DO (
    SET "what=%%F" 
    SET "result=!what:<link>=!" 
    ECHO !result! 
) 
endlocal 
+0

@JosefZ: Не тот случай. Достижение EOF эквивалентно «endlocal». – Magoo

+0

Не тот случай. Здесь вам потребуется отсроченное расширение, потому что используемые переменные находятся внутри блока. Кавычки служат только для обеспечения того, чтобы конечные пробелы не включались в назначенное значение. – Magoo

+0

@Magoo да, но я не вижу 'EOF', я не вижу, встроен ли фрагмент кода OP в некоторый внешний цикл и т. Д. ... Перейдем к _meta_ с ним ... – JosefZ

Смежные вопросы