Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Поиск строки по слову и добавление новой строки после найденой.

Ответить
Настройки темы
CMD/BAT - Поиск строки по слову и добавление новой строки после найденой.

Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Уважаемые, пожалуйста окажите помощь!

Задача такова:

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

12:40:18;2448;DFEGB;FDSF
12:43:04;8393;;RAAI 18
12:43:25;24897;LKUY;KJLLKO
12:47:16;28627;;MIHIUH
12:47:20;29572;KLKGHJHr;SAGFHAY
;8489;ADVB;In 2;0:00:03
;31027;ADVB;DBXL2312;0:00:09
;30830;ADVB;DBXL2271;0:00:20
;31044;ADVB;DBXL2315;0:00:12
;31026;ADVB;DBXL2311;0:00:09
;31052;ADVB;DBXL2317;0:00:15
;30436;ADVB;DBXL2200;0:00:27
;31017;ADVB;DBXL2309;0:00:13
;8499;ADVB;Out 2;0:00:05
12:53:48;29961;FDKQ;HHKJHIK
12:57:43;26093;;HJHKJHAW
и т.д.

Необходимо написать батник, которому передается название этого текстового файла.

В нем нужно найти строки содержащие текст "DBXL" и добавить после каждой такой строки строку с определенным текстом.
Например ";VSTAVKA".

Обработанный файл нужно сохранить под тем же именем.

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

Заранее огромное спасибо!

Отправлено: 23:36, 25-05-2013

 

Аватара для icq99999999

Пользователь


Сообщения: 86
Благодарности: 3

Профиль | Отправить PM | Цитировать


Цитата Iska:
@echo off setlocal enableextensions enabledelayedexpansion set sFile=%~1 set sString4Find=DBXL set sString4Append=;VSTAVKA call :GetTemporaryName if defined sFile ( if exist "%sFile%" ( for /f "usebackq eol= delims=" %%i in ("%sFile%") do ( echo %%i| >nul find.exe "%sString4Find%" && ( >>"%TemporaryName%" echo %%i%sString4Append% ) || ( >>"%TemporaryName%" echo %%i ) ) if exist "%sFile%.bak" del /f /q "%sFile%.bak" ren "%sFile%" "%sFile%.bak" copy /y "%TemporaryName%" "%sFile%" del /f /q "%TemporaryName%" ) else ( echo Source file [%sFile%] not found. ) ) else ( echo Usage: %~nx0 ^<source file^> ) endlocal exit /b 0 rem ========================================================================== rem ========================================================================== rem Функция GetTemporaryName() rem rem Серый форум / CMD/BAT: генерация пути для временного файла или папки rem (http://forum.script-coding.com/viewtopic.php?id=6259) rem ========================================================================== :GetTemporaryName setlocal enableextensions enabledelayedexpansion :NextName set sTempName=%temp%\temp%random%.tmp if exist "%sTempName%" goto :NextName set sProcName=%~0 endlocal & set %sProcName:~4%=%sTempName% exit /b 0 rem ========================================================================== »
как добавить в начало всех строк определенный текст ?

Отправлено: 23:51, 28-07-2013 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
for /f "delims=" %%i in (0001.txt) do echo определенный текст%%i>>0002.txt
Пустые строки исчезнут.
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:16, 29-07-2013 | #12


Аватара для icq99999999

Пользователь


Сообщения: 86
Благодарности: 3

Профиль | Отправить PM | Цитировать


Цитата Iska:
Код: »
имеется файл с таким таким содержанием (пример куска файла)
start /low C:\Windows\comencom.cmd
start /low "C:\Users\User\AppData\Roaming\uTorrent\uTorrent.exe" /MINIMIZED
start /low "C:\Program Files\Skype\Phone\Skype.exe" /minimized /regrun
а мне нужно так
ping -n 4 127.0.0.1 >nul
start /low C:\Windows\comencom.cmd
ping -n 4 127.0.0.1 >nul
start /low "C:\Users\User\AppData\Roaming\uTorrent\uTorrent.exe" /MINIMIZED
ping -n 4 127.0.0.1 >nul
start /low "C:\Program Files\Skype\Phone\Skype.exe" /minimized /regrun
притом строк будет очень много, эти я взял для примера.
то есть мне нужно чтобы перед каждой строкой была ping -n 4 127.0.0.1 >nul

Отправлено: 14:18, 30-07-2013 | #13


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

>0002.txt (
	for /f "delims=" %%i in (0001.txt) do (
		echo ping.exe -n 4 127.0.0.1 ^>nul
		echo %%i
	)
)

endlocal
exit /b 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:01, 30-07-2013 | #14


Аватара для icq99999999

Пользователь


Сообщения: 86
Благодарности: 3

Профиль | Отправить PM | Цитировать


Цитата Iska:
Код: »
как добавить в самое начало файла текст который содержит переход на другую строку
то есть по умолчании так
start /low C:\Windows\comencom.cmd
а мне нужно так
@echo off

start /low C:\Windows\comencom.cmd

Отправлено: 16:09, 30-07-2013 | #15


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

>0002.txt (
	echo @echo off
	type 0001.txt
)

endlocal
exit /b 0
icq99999999, пользуйте тэг [code], дабы выглядело так:
читать дальше »
Цитата icq99999999:
Как добавить в самое начало файла текст, который содержит переход на другую строку. То есть, по умолчанию так:
Код: Выделить весь код
start /low C:\Windows\comencom.cmd
а мне нужно так:
Код: Выделить весь код
@echo off
start /low C:\Windows\comencom.cmd
»

Отправлено: 16:20, 30-07-2013 | #16


Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Подскажите как написать файл который бы в текстовом документе (10гиг) через каждые 15 строк ставил пустую строку или символ-- помогите очень нужно!

Отправлено: 01:47, 16-03-2017 | #17


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


eggggggr, кодировка какая у текстового файла? Если юникод — то какой, и есть ли BOM? Концы строк в каком виде Windows, Unix, Mac?

Цитата eggggggr:
пустую строку или символ »
Определитесь, что Вам нужно.

Отправлено: 03:37, 16-03-2017 | #18



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Поиск строки по слову и добавление новой строки после найденой.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Поиск и удаление строк, содержащих перевод строки после двоеточия SergeyVD Скриптовые языки администрирования Windows 3 14-03-2012 22:36
CMD/BAT - добавление строки в в файл Hunterus Скриптовые языки администрирования Windows 1 10-11-2011 22:02
CMD/BAT - [решено] Поиск и удаление строки в файле по сложным условиям m0nkrus Скриптовые языки администрирования Windows 9 26-06-2011 10:37
.NET - DataGrid запрет добавления новой строки Delirium Программирование и базы данных 0 04-03-2011 08:50
MSFT SQL Server - [решено] Создание новой строки по таймеру без внешней программы HohOl78 Программирование и базы данных 2 09-09-2008 23:32




 
Переход