BAT файл. Как найти и заменить в текстовом документе спецсимвол? + внутри...
-
Не будет обрабатывать такой символ BAT-файл.
-
а где команда которая удаляет символ?
-
Вот чёрт, не заметил, что там нет вложенности циклов. Тогда, вероятно, мешает точка после echo. Хотя сейчас попробовал - удаляет, но только первую последовательность одинаковых символов. То есть я записал в s.txt символ #, а в a.txt - ~3%%##555##!%~
В b.txt получил ~3%% 555##!%~
И это нормально, поскольку такой алгоритм разделяет строку на два элемента, пользуясь в качестве разделителя указанным символом.
Я бы написал так:
@echo off
Setlocal EnableDelayedExpansion
for /f "tokens=* delims=" %%i in ('type s.txt') do set x=%%i
for /f "delims=" %%i in ('type a.txt') do (
set s=%%i
set s=!s:%x%=!
echo! s!>>b.txt
)
Но только тут появляются ограничения, связанные с тем, что символ! в строке воспринимается, как служебный символ, поэтому из строки удаляется всё, что начинается с этого символа.Источник: серое вещество