С Новым годом! Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.61/345: Рейтинг темы: голосов - 345, средняя оценка - 4.61
Ramazan13
1

Редактирование текстового файла

07.12.2009, 16:13. Показов 64146. Ответов 24
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Заранее извиняюсь если тема уже подымалось, поиск ни чего не дал
Нужен батник котрый будет изменять одно слово в текстовом файле.
сам батник и текстовый файл лежат в одном катологе, ОС WinXP
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.12.2009, 16:13
Ответы с готовыми решениями:

Редактирование содержимого текстового файла
Есть текстовый файлик типа: первая строка вторая строка третья строка четвертая строка пятая...

Редактирование содержимого текстового файла
Доброе время суток, Уважаемые знатоки! Такая ситуация есть txt файл (допустим files.txt) с таким...

Редактирование части текстового документа
Имеется текстовый документ. Нужно изменить слово в кавычках в третьей строке батником. PS. Это...

Редактирование текстового файла
Здравствуйте, есть текстовый файл для управления программой. Мне нужно найти этом файле...

24
Ramazan13
08.12.2009, 10:31 2
так ни кто и не подскажет?
хоть сылочку бы, на команды для открытия и редактирования текстового файла из командной строки.
Логика понятна - открываем файл для редактирования, находим нужную последовательность симвалов, меняем эту последовательность симвволов на нужное, закрываем файл.
подскажите синтаксис?
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
28046 / 15779 / 983
Регистрация: 15.09.2009
Сообщений: 67,752
Записей в блоге: 78
08.12.2009, 11:54 3
из батника не выйдет.
ищи скрипты....
0
0 / 0 / 0
Регистрация: 25.11.2009
Сообщений: 4
08.12.2009, 13:44 4
порой команду FINDSTR и поиграйся с перенаправлением вывода и переименованием файлов. У меня с её помощью кое-что получалось из *.cmd сделать.
0
1 / 1 / 0
Регистрация: 14.06.2013
Сообщений: 6
20.09.2013, 15:00 5
Может так?
Bash
1
2
3
4
5
6
7
8
9
10
11
Set infile=имя txt файла.txt 
Set find=какой отрывок изменить 
Set replace=на что изменить
 
setlocal enabledelayedexpansion 
for /F "tokens=* delims=," %%n in (!infile!) do ( 
set LINE=%%n 
set LINE=!LINE:%find%=%replace%! 
@echo !LINE!>>в какой файл сохранить.txt 
)
endlocal
0
Эксперт WindowsАвтор FAQ
18014 / 7715 / 892
Регистрация: 25.12.2011
Сообщений: 11,496
Записей в блоге: 16
20.09.2013, 16:24 6

Не по теме:

Ему уже не нужно



Но тогда уже так (без разделителей, кавычки, объявления все вначале, строки с пробелом печатаем без ошибки):
Bash
1
2
3
4
5
6
7
8
9
10
11
12
@echo off
SetLocal EnableExtensions EnableDelayedExpansion
 
Set infile=имя txt файла.txt
Set outFile=в какой файл сохранить.txt
Set find=какой отрывок изменить 
Set replace=на что изменить
 
for /F "UseBackQ delims=" %%n in ("%infile%") do ( 
  set "LINE=%%n"
  echo=!LINE:%find%=%replace%!>>"%outFile%"
)
1
0 / 0 / 0
Регистрация: 14.01.2014
Сообщений: 9
27.07.2016, 10:12 7
Из сообщения pavlukivan код добавляет в конец файла строку «!LINE! »,
из сообщения Dragokas код добавляет в конец файла строку «!LINE:какой отрывок изменить = на что изменить», а не находит указанный текст и меняет его...
0
Эксперт WindowsАвтор FAQ
18014 / 7715 / 892
Регистрация: 25.12.2011
Сообщений: 11,496
Записей в блоге: 16
27.07.2016, 16:30 8
BonD 007, как раз именно то и делает, что описано в задании, если использовать директиву
Цитата Сообщение от Dragokas Посмотреть сообщение
SetLocal EnableExtensions EnableDelayedExpansion
разве что она у Вас по какой-то причине не работает (опечатка / не указана вообще / ... какая-то специфическая версия ОС или интерпретатора / ... ).
0
0 / 0 / 0
Регистрация: 08.04.2015
Сообщений: 2
16.08.2016, 10:37 9
Dragokas, добрый день, подскажи, пожалуйста, может можно как-то поправить твой код, чтобы не удалялись знаки восклицания (!) из текста?
0
4336 / 2126 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
16.08.2016, 21:45 10
вар1
Windows Batch file
1
2
3
4
5
6
7
8
@echo off
for /f "delims=" %%a in ('type "file.txt"') do set "s=%%a"& call :p "%%s:!=^!%%"
pause& exit
 
:p
 setlocal enabledelayedexpansion
 echo %~1
exit/b
вар2
Windows Batch file
1
2
3
4
5
6
7
8
9
10
@echo off
<"file.txt" (
 for /f "delims=" %%a in ('more') do (
  set "s=%%a"
  setlocal enabledelayedexpansion
  set "s=!s:^!=^^!!"
  echo !s!
 )
)
pause
0
0 / 0 / 0
Регистрация: 06.05.2016
Сообщений: 23
30.09.2016, 16:10 11
Тоже нужна замена в текстовом файле, только без создания нового файла с изменениями, а изменение непосредственно в этом файле.
Поковырялся со скриптом Dragokas, получился довесок.
Windows Batch file
1
2
copy "%outFile%" "%infile%"
del "%outFile%"
Или есть более красивое решение?
Небольшое расширение этой задачи. Нужно заменить текст внутри всех файлов "name.ext", лежащих в определённом каталоге, включая подкаталоги.
И ещё проблема. Если искомая и заменяемая строки содержат спецсимволы, то замена происходит совсем некорректно.
Пример искомой строки:
<HideableDialog id="ScaleList.LargeScaleAlert" title="Масштаб аннотаций — большое количество масштабов" category="Масштаб аннотаций" application="" result="7">
0
6296 / 2137 / 337
Регистрация: 10.12.2013
Сообщений: 7,370
30.09.2016, 20:32 12
Цитата Сообщение от Mitek1977 Посмотреть сообщение
есть более красивое решение?
в решениях, связанных с интерпретатором CMD, красоту найти совсем нелегко,
( https://www.youtube.com/watch?v=BCM1uAKOsoo)
особенно, когда есть с чем сравнивать.

если исходный файл, требующий редактирования, представляет из себя XML,
я бы посоветовал использовать xquery для замены значений узлов и атрибутов.
( а для версий windows 7 и старше имеется уже встроенный powershell, тогда использовать именно его )
0
Любознательный
6695 / 1950 / 335
Регистрация: 10.03.2016
Сообщений: 4,504
30.09.2016, 20:56 13
Цитата Сообщение от Mitek1977 Посмотреть сообщение
Или есть более красивое решение?
Красота имеет наименьшее значение... главное эффективность и производительность, но это уже не совсем про cmd...
Но можно заменить эти две команды одной:
Windows Batch file
1
move /y "%outFile%" "%infile%"
0
0 / 0 / 0
Регистрация: 06.05.2016
Сообщений: 23
05.10.2016, 15:46 14
Цитата Сообщение от volodin661 Посмотреть сообщение
если исходный файл, требующий редактирования, представляет из себя XML,
я бы посоветовал использовать xquery для замены значений узлов и атрибутов.
( а для версий windows 7 и старше имеется уже встроенный powershell, тогда использовать именно его )
А можно конкретное решение? А то я не силён в этом.
(На компе Windows 7).
0
Любознательный
6695 / 1950 / 335
Регистрация: 10.03.2016
Сообщений: 4,504
05.10.2016, 16:58 15
Цитата Сообщение от Mitek1977 Посмотреть сообщение
А можно конкретное решение?
А Вы откройте новую тему и там опишите подробнее, что хочется сделать.
И если это редактирование xml, то тему открывайте сразу в разделе про powershell, там быстрее подберётся решение.
0
0 / 0 / 0
Регистрация: 06.05.2016
Сообщений: 23
01.11.2016, 11:38 16
А если тут же, только не через PowerShell, а через какой-нибудь редактор XML, например xmlstarlet ?
Я пытался с ним разобраться, но как-то не очень получилось.
в строке
XML
1
<Profile><StorageRoot><AcApData><HideableDialogs><HideableDialog id="ScaleList.LargeScaleAlert" title="Масштаб аннотаций — большое количество масштабов" category="Масштаб аннотаций" application="" result="7">
надо заменить result="7" на result="6"
0
6296 / 2137 / 337
Регистрация: 10.12.2013
Сообщений: 7,370
01.11.2016, 12:34 17
powershell - самое правильное инструмент. средство Windows на текущ. момент
и в ближайшем будущем для редактирования xml-файлов.
0
0 / 0 / 0
Регистрация: 06.05.2016
Сообщений: 23
01.11.2016, 12:37 18
Цитата Сообщение от volodin661 Посмотреть сообщение
powershell - самое правильное инструмент. средство Windows на текущ. момент
и в ближайшем будущем для редактирования xml-файлов.
Создал тему в разделе Powershell.
0
6296 / 2137 / 337
Регистрация: 10.12.2013
Сообщений: 7,370
01.11.2016, 12:59 19
горжусь тобой.
0
8 / 8 / 5
Регистрация: 21.05.2014
Сообщений: 430
24.03.2018, 13:51 20
Тема вроде бы похожа, задам здесь, на линуксах есть nano "файл", открываем текстовый файл в консоли и редактируем, есть ли что то подобное на cmd\ps ?
0
24.03.2018, 13:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.03.2018, 13:51
Помогаю со студенческими работами здесь

Редактирование текстового файла
Все привет нужна помощь Задание:Составить программу на языке С++, позволяющую отредактировать...

Редактирование текстового файла
Доброго времени суток. Подскажите, пожалуйста, как решить задачу: &quot;Написать функцию, которая...

Редактирование текстового файла
я долго рыскал по форуму но не смог найти. как в текстовом файле найти определенный текст после...

Редактирование текстового файла
Дан файл, содержащий текст на русском языке. В предложениях некоторые из слов записаны подряд...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru