2013-04-30 5 views
0

Я пытаюсь удалить многострочную строку из файла с помощью Batch в Windows. Мой пакетный код делает некоторые странные вещи, такие как поместить в файл строку ECHO is off..Удалить многострочную строку из файла

Edit: со всем кодом
Как я могу получить мой код, чтобы удалить строку из нескольких строк из файла?

@echo off &setlocal enabledelayedexpansion 

Rem Read file and store all contents in string 
Set replace= 
Set target= 
Set infile=usermenuTest1.4d 
Rem %~1 
Set outfile=usermenuTest2.4d 
Rem %~2 

for /f "delims=" %%i in (%infile%) do set "target=!target! %%i" 
echo %target% 

Rem Remove the target string from myOtherFile.txt: this code is from http://stackoverflow.com/questions/5273937/how-to-replace-substrings-in-windows-batch-file 
@echo off & setlocal enabledelayedexpansion 
for /f "tokens=1,* delims=¶" %%A in ('type "%outfile%"') do SET "string=%%A" 
SET "modified=!string:%target%=%replace%!" 
(echo(%modified%)>> "%outfile%" 

Пример строки с многострочным я хочу заменить:

Menu "User" { 
    Button "" { 
     Walk_Right "" 
    } 
} 

Menu "" { 
    // Button "CAD" { 
    // Walk_Right "CAD"  
    // } 
    Button "Design" { 
     Walk_Right "Design"  
     } 
    Button "Services" { 
     Walk_Right "Services"   
     } 
    Button "Strings" { 
     Walk_Right "Strings"   
     } 
    Button "Survey" { 
     Walk_Right "Survey"   
     } 
    Button "Utilities" { 
      Walk_Right "Utilities"   
     } 
    Button "Zoom" { 
     Walk_Right "Zoom"   
     }   
    } 
+0

Пост мульти-линии пример строка, которую вы хотите удалить – ElektroStudios

+0

@ElektroHacker пожалуйста см. править, например, –

ответ

0

Попробуйте это:

@echo off & setlocal enabledelayedexpansion 
for /f "tokens=1,* delims=¶" %%A in ('type "%outfile%"') do SET "string=%%A" 
SET "modified=!string:%target%=%replace%!" 
(echo(%modified%)>> "%outfile%" 
+0

, что sortof работал, «Echo is off» теперь не существует, но строка, которую я хочу удалить, по-прежнему присутствует в файле, когда этого не должно быть. –

+0

ОК, пожалуйста, покажите% target% и% replace%. – Endoro

+0

Я редактировал свой вопрос с полным кодом, который показывает все переменные. –

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