2 / 2 / 0
Регистрация: 28.01.2014
Сообщений: 210
1

Замена строки в текстовом файле

12.08.2016, 12:18. Показов 4185. Ответов 8
Метки нет (Все метки)

Помогите пожалуйста
Необходимо написать батник.
Находит текст в файле 1.txt. Он может меняться, начало не меняется adress= "далее текст который меняется"
На adress= "заданный текст"

Т.е. было
adress= "далее текст который меняется"
Стало
На adress= "заданный текст"
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.08.2016, 12:18
Ответы с готовыми решениями:

Замена части строки в текстовом файле
Добрый вечер. Необходима помощь в написании bat, который бы заменил: "restore_ps": на...

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

Замена в текстовом файле заданной строки на порядковый номер её вхождения в текст
Всем привет! Нуждаюсь в Вашей помощи. Есть текстовый файл file1.txt с примерно таким содержимым: ...

Замена в текстовом файле заключённой в кавычки части каждой строки вместе с кавычками
Здравствуйте. Пожалуйста помогите разобраться в следующей задаче. Есть текстовый файл names.txt...

8
Покинул форум
3294 / 1080 / 298
Регистрация: 07.05.2015
Сообщений: 2,196
12.08.2016, 13:23 2
Лучший ответ Сообщение было отмечено Olich666 как решение

Решение

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@echo off
  setlocal
    for /f "tokens=1,* delims=:" %%i in (
      'findstr /nirc:"address=" file'
    ) do set "n=%%i"&set "s=%%j"
    set "s=%s:tru-la-la st.=Madison Av.%"
    set "i=1"
    for /f "tokens=1,* delims=][" %%i in (
      'find /n /v "" ^< file'
    ) do (
      if %%i equ 3 (echo:%s%) else (echo:%%j)
    )>>tmp
    move /y tmp file >nul
  endlocal
exit /b
Хотя перенаправление в поток было бы более практичней, так как не нужно создавать временный файл.
1
2 / 2 / 0
Регистрация: 28.01.2014
Сообщений: 210
12.08.2016, 14:38  [ТС] 3
Командник срабатывает по другому. не как в задаче.
Он заменяет 3-ю строку в файле: adress= "заданный текст".

А необходимо, чтобы находил adress= "далее текст который меняется"
На adress= "заданный текст"

Добавлено через 2 минуты
Хотя в строке : if %%i equ 3 (echo:%s%) else (echo:%%j) можно заменить на нужную и сработает как надо, но лучше, чтобы он находил не по номеру строки а по тексту
0
Покинул форум
3294 / 1080 / 298
Регистрация: 07.05.2015
Сообщений: 2,196
12.08.2016, 17:47 4
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

Цитата Сообщение от Olich666
но лучше, чтобы он находил не по номеру строки а по тексту
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
@echo off
  setlocal enabledelayedexpansion
    for /f "delims=" %%i in (file) do (
      echo:%%i|>nul findstr /irc:"address="&&(
        set "s=%%i"
        set "s=!s:test string=new string!"
        echo !s!
      )||(echo:%%i)
    )>>tmp
    move /y tmp file >nul
  endlocal
exit /b
1
2 / 2 / 0
Регистрация: 28.01.2014
Сообщений: 210
06.10.2016, 16:16  [ТС] 5
Удаляет пустые строки Хотелось бы их сохранить в файле
0
4205 / 2083 / 653
Регистрация: 26.04.2015
Сообщений: 6,720
06.10.2016, 16:42 6
в 3й строке (file) замените на ('^<"file.txt" find /n /v ""')
5ю строку замените на
Windows Batch file
1
set "s=%%i"& set "s=!s:*]=!"
7ю строку на echo:!s!
0
2 / 2 / 0
Регистрация: 28.01.2014
Сообщений: 210
06.10.2016, 17:23  [ТС] 7
Теперь он зачем то нумерует строки вида:
[1]
[2]
[3]
и т.д
0
4205 / 2083 / 653
Регистрация: 26.04.2015
Сообщений: 6,720
06.10.2016, 21:29 8
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

Olich666,
Извиняюсь, мой косяк, хотел побыстрее, не проверил, вот так правильно:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
@echo off
setlocal enabledelayedexpansion
 <"file.txt">$ (for /f "delims=" %%a in ('find /n /v ""') do @(
   set "s=%%a"& set "s=!s:*]=!"& echo:!s!|>nul findstr /irc:"adress=" && (
    echo:!s:adress= "заданный текст"!
   ) || (
    echo:!s!
   )
  )
 )& >nul move $ "file.txt"
endlocal
exit /b
.
1
2 / 2 / 0
Регистрация: 28.01.2014
Сообщений: 210
07.10.2016, 10:55  [ТС] 9
Спасибо большое
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.10.2016, 10:55

Замена слов в текстовом файле
Здравствуете! Очень требуется помощь. Вот проблема. Нужен батник, который будет менять в файлах,...

Замена слов в текстовом файле
Здравствуйте уважаемые знатоки ,прошу вашей помощи.Нужен батник который производит замену слов на...

Замена символов в текстовом файле
Добрый день у меня такой вопрос. Есть файл test.txt предположим в нем такое...

Замена букв в текстовом файле
Здравствуете! требуется помощь. Нужен батник, который будет менять буквы в тексте, нужно заменить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.