Имя пользователя:
Пароль:
 | Правила  

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

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

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


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


Конфигурация

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


Изменения
Автор: dima9069
Дата: 21-12-2012
Уважаемые, прошу поделиться мнениями по поводу вот такой задачи автоматизации: есть текстовый файл 1.txt (http://forum.oszone.net/attachment.p...&d=1356116124), необходимо организовать какой-то цикл, в кот. нужно искать строки с определенными символами (допустим названия сайтов) и впереди этих строк поставить 2 знака "//". Возможно ли такое?

Отправлено: 22:49, 21-12-2012

 

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


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

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


Cмотрите строка до изменения
jl[1]0lh[2][3]starsbux.ru[4][5][6]gregbux.ru[7]c576a44d915ad167f5f25d9c631041c4[8][9]000[10]0[11]0[12][13][14]<none>[15]
и строка после изменения
//jl[1]0lh[2][3]starsbux.ru[4][5][6]gregbux.ru[7]c576a44d915ad167f5f25d9c631041c4[8][9]000[10]0[11]0[12][13][14]<none>[15]
но строк может быть много. Т.е. перед starsbux.ru может быть неизвестно сколько знаков

Отправлено: 19:26, 22-12-2012 | #11



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

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


Ветеран


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

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


dima9069, почему тогда Вы не вставили «//» перед прочими строками?

Отправлено: 07:48, 23-12-2012 | #12


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


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

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


Iska, сделать бы задачу хотя бы для одного названия сайта было бы неплохо

Отправлено: 00:54, 26-12-2012 | #13


Ветеран


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

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


dima9069, всё равно мало информации для того, чтобы однозначно определять имена сайтов. Максимум, на что можно тут ориентироваться — на имена корневых доменов. Плюс символы перенаправления «<»/«>» внутри текстового файла.

Попробуйте WSH:
читать дальше »
Код: Выделить весь код
Option Explicit

Dim strSourceFile
Dim strTempFileName

Dim objRegExp
Dim objFSO
Dim objTS

Dim strLine


If WScript.Arguments.Count = 1 Then
	strSourceFile = WScript.Arguments.Item(0)
	
	With WScript.CreateObject("Scripting.FileSystemObject")
		If .FileExists(strSourceFile) Then
			Set objRegExp = WScript.CreateObject("VBScript.RegExp")
			
			With objRegExp
				.IgnoreCase = True
				.Pattern    = ".*\.(com|org|net|info|ru)[^a-z].*"
			End With
			
			strTempFileName = GetTemporaryName()
			Set objTS = .CreateTextFile(strTempFileName)
			
			With .OpenTextFile(strSourceFile)
				Do Until .AtEndOfStream
					strLine = .ReadLine()
					
					If objRegExp.Test(strLine) Then
						objTS.WriteLine "//" & strLine
					Else
						objTS.WriteLine strLine
					End If
				Loop
				
				.Close
			End With
			
			objTS.Close
			Set objTS = Nothing
			
			With .GetFile(strSourceFile)
				.Name = .Name & ".bak"
			End With
			
			.CopyFile strTempFileName, strSourceFile
			.DeleteFile strTempFileName
		Else
			WScript.Echo "Source file [" & strSourceFile & "] not found"
		End If
	End With
	
	Set objRegExp = Nothing
Else
	WScript.Echo "Usage: cscript.exe //nologo " & WScript.ScriptName & " <Source file>"
End If

WScript.Quit 0
'=============================================================================

'=============================================================================
' Серый форум / vbscript: генерация пути для временного файла или папки
' (http://forum.script-coding.com/viewtopic.php?id=1221)
'=============================================================================
Function GetTemporaryName()
	Const TemporaryFolder = 2
	
	Dim strTempName
	
	With WScript.CreateObject("Scripting.FileSystemObject")
		Do
			strTempName = .BuildPath(.GetSpecialFolder(TemporaryFolder), .GetTempName)
		Loop While .FileExists(strTempName) Or .FolderExists(strTempName)
	End With
	
	GetTemporaryName = strTempName
End Function
'=============================================================================

Имя/путь исходного файла задавайте параметром скрипта (можно просто перетащить Ваш файл на скрипт в Проводнике).

Отправлено: 06:44, 26-12-2012 | #14



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Поиск случайной строки в txt. bugmenotagain Скриптовые языки администрирования Windows 6 18-12-2012 19:07
[решено] [PHP] Поиск строки в файле KrotMen Вебмастеру 3 12-10-2012 15:25
Любой язык - [решено] Поиск неизвестной строки в файле, ограниченной известными символами m0nkrus Скриптовые языки администрирования Windows 8 24-04-2012 12:27
[решено] Поиск <строки> в XML semiono AutoIt 28 17-11-2010 19:53
Perl(Поиск строки в подстроке) Jonik-Mnimonik Программирование в *nix 4 15-11-2010 17:42




 
Переход