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

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

Ответить
Настройки темы
CMD/BAT - [решено] Замена части текста в txt файлах

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


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

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


Изменения
Автор: Traveller124
Дата: 28-03-2012
Имеется папку Folder с файлами расширения *.txt (наименование файлов регулярно меняется и не постоянно, кол-во файлов тоже не имеет постоянства)
Необходимо систематически, внутри файлов, производить замену текста, если он встречается в данных *.txt файлах, с "Золотая рыбка" на "Очень золотая рыбка"

Прошу помочь, сам не силен (.
Заранее спасибо

Отправлено: 11:58, 28-03-2012

 

Ветеран


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

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


Traveller124, какова кодировка файлов, и каков ориентировочный размер файлов? Насколько жёстко требование оставаться в рамках категории CMD/BAT?

Отправлено: 12:19, 28-03-2012 | #2



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

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


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


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

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


Кодировка на сколько я понял ANSI
Файлы ~2Мб
Требование оставаться в рамках категории CMD/BAT, т.к. применение стороннего ПО, которое существует и заточено уже под данные процессы не приемлемо.

Отправлено: 12:43, 28-03-2012 | #3


Ветеран


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

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


WSH устроит?

Отправлено: 13:42, 28-03-2012 | #4


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


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

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


Ранее писал, что сам не силен(.
Почитал и понимаю, что WSH устроит

Отправлено: 14:28, 28-03-2012 | #5


Ветеран


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

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


Traveller124, примерно так:
читать дальше »
Код: Выделить весь код
Option Explicit

Const ForReading = 1
Const ForWriting = 2

Dim sFolder

Dim objRegExp
Dim objFile

Dim strContent


sFolder = "C:\Песочница\0005"

Set objRegExp = WScript.CreateObject("VBScript.RegExp")

With objRegExp
	.Global = True
	.Pattern = "Золотая рыбка"
End With

With WScript.CreateObject("Scripting.FileSystemObject")
	If .FolderExists(sFolder) Then
		For Each objFile In .GetFolder(sFolder).Files
			If UCase(.GetExtensionName(objFile.Name)) = UCase("txt") Then
				With objFile.OpenAsTextStream(ForReading)
					strContent = .ReadAll()
					
					.Close
				End With
				
				If objRegExp.Test(strContent) Then
					With objFile.OpenAsTextStream(ForWriting)
						.Write objRegExp.Replace(strContent, "Очень золотая рыбка")
						
						.Close
					End With
				End If
			End If
		Next
	Else
		WScript.Echo "Folder [" & sFolder & "] not found"
	End If
End With

Set objRegExp = Nothing

WScript.Quit 0

Последний раз редактировалось Iska, 02-04-2012 в 19:16. Причина: Добавлен неучтённый глобальный поиск, согласно письма в PM

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

Отправлено: 19:43, 01-04-2012 | #6


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


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

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


Огромное спасибо Iska

Отправлено: 17:20, 02-04-2012 | #7


Ветеран


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

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


Из письма в PM:
Цитата Traveller124:

Добавил " objRegExp.Global = True ", дабы замена происходила по всему тексту, а не только по первому найденному словосочетанию.
Добавил неучтённый глобальный поиск в код.
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:16, 02-04-2012 | #8



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Замена текста в txt Starter1 Скриптовые языки администрирования Windows 17 04-08-2022 18:26
C/C++ - Извлечение из текста нужной части Alexey271 Программирование и базы данных 9 25-11-2010 13:19
CMD/BAT - Сравнение и замена в файлах .txt Deep2007 Скриптовые языки администрирования Windows 4 19-11-2010 19:08
Разное - [решено] FoxPro 2.6 Замена фрагментов текста в txt-файле Pashka Программирование и базы данных 7 18-01-2010 19:20
C/C++ - Поиск текста в файлах student_po Программирование и базы данных 6 04-09-2009 23:33




 
Переход