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

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

Ответить
Настройки темы
CMD/BAT - Скопировать телефоны из .VCF

Старожил


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


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

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


Есть папка с кучей контактов в формате .VCF (Например Вася.VCF, Маша.VCF и т.д.), в каждом из них есть строчка с телефоном начинающаяся с TEL;CELL:89055000000 Можно ли из этой кучи контактов сделать один файлик с Именами и Телефонами с помощью CMD/BAT ?

Отправлено: 11:42, 18-05-2015

 

Ветеран


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

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


Valek271183, упакуйте пару-тройку таких файла в архив, выложите сюда или на RGhost.

Отправлено: 11:50, 18-05-2015 | #2



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

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


Старожил


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

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


Прикрепил
и на http://rghost.ru/7rvkCs7s9

Отправлено: 11:53, 18-05-2015 | #3


Ветеран


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

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


Valek271183, попробуйте так (на WSH):
Скрытый текст
Код: Выделить весь код
Option Explicit

Dim strSourceFolder

Dim objFSO
Dim objFile
Dim objTS

Dim strContent


If WScript.Arguments.Count = 1 Then
	strSourceFolder = WScript.Arguments.Item(0)
	
	Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
	
	If objFSO.FolderExists(strSourceFolder) Then
		Set objTS = Nothing
		
		For Each objFile In objFSO.GetFolder(strSourceFolder).Files
			If StrComp(objFSO.GetExtensionName(objFile.Name), "vcf", vbTextCompare) = 0 Then
				With objFile.OpenAsTextStream()
					strContent = .ReadAll()
					.Close
				End With
				
				With WScript.CreateObject("VBScript.RegExp")
					.Pattern = "^BEGIN:VCARD\r\nVERSION:2.1\r\nN;CHARSET=(.*);ENCODING=QUOTED-PRINTABLE:;(.*);;;\r\nTEL;CELL:(.*)\r\n[\s\S]*END:VCARD$"
					.MultiLine = True
					
					If .Test(strContent) Then
						With .Execute(strContent).Item(0).Submatches
							If objTS Is Nothing Then
								Set objTS = objFSO.CreateTextFile("Result.txt", True)
							End If
							
							objTS.WriteLine QuotedPrintableDecode(Trim(.Item(1)), .Item(0)) & "," & .Item(2) & "," & objFile.Path
						End With
					Else
						WScript.Echo "Can't find Name and Phone in file [" & objFile.Path & "]."
					End If
				End With
			End If
		Next
		
		If Not objTS Is Nothing Then
			objTS.Close
			Set objTS = Nothing
		End If
	Else
		WScript.Echo "Can't find source folder [" & strSourceFolder & "]."
		WScript.Quit 2
	End If
Else
	WScript.Echo "Usage: cscript.exe //nologo " & WScript.ScriptName & " <Source folder>"
	WScript.Quit 1
End If

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

'=============================================================================
Function QuotedPrintableDecode(strValue, strCharSet)
	With WScript.CreateObject("CDO.Message")
		.BodyPart.ContentTransferEncoding = "quoted-printable"
		
		With .BodyPart.GetEncodedContentStream
			.charset = "windows-1250"
			.WriteText strValue
			
			.Flush
		End With
		
		With .BodyPart.GetDecodedContentStream
			.CharSet = strCharSet
			QuotedPrintableDecode = .ReadText()
		End With
	End With
End Function
'=============================================================================

Исходная папка задаётся аргументом скрипта (можно просто перетащить папку на скрипт в Проводнике).

Отправлено: 13:37, 18-05-2015 | #4


Старожил


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

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


Пишет Сценарий не указан, папка с контактами с именем 123 с корне диска С:\ - перетаскиваю её на скрипт и пишет Сценарий не указан

Отправлено: 14:02, 18-05-2015 | #5


Ветеран


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

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


Цитата Valek271183:
Пишет Сценарий не указан, »
Сохраняйте код в файл с расширением «.vbs», а не «.wsh».

Отправлено: 14:27, 18-05-2015 | #6


Старожил


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

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


Пишет ошибку Can't find Name and Phone in file
строка 37 символ 8 недопустимый вызов или аргумент процедуры

Отправлено: 16:18, 18-05-2015 | #7


Ветеран


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

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


Цитата Valek271183:
Пишет ошибку Can't find Name and Phone in file »
В каком именно файле пишет?

Цитата Valek271183:
строка 37 символ 8 недопустимый вызов или аргумент процедуры »
Покажите скриншот или содержимое окна ошибки («Ctrl-C» в окне сообщения об ошибке).

Отправлено: 16:28, 18-05-2015 | #8


Старожил


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

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


---------------------------
Windows Script Host
---------------------------
Сценарий: C:\Text.vbs
Строка: 37
Символ: 8
Ошибка: Недопустимый вызов или аргумент процедуры
Код: 800A0005
Источник: Ошибка выполнения Microsoft VBScript

---------------------------
ОК
---------------------------
это при перетаскивание на Text.vbs

Отправлено: 16:32, 18-05-2015 | #9


Ветеран


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

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


Давайте уточним: строка 37 — это: «objTS.WriteLine QuotedPrintableDecode(Trim(.Item(1)), .Item(0)) & "," & .Item(2) & "," & objFile.Path», так?

Отправлено: 16:35, 18-05-2015 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Офис и Текст - vcf не сохраняются изменения после редактирования makatuk Программное обеспечение Windows 0 03-01-2015 18:14
К 2020 году мобильные телефоны будут у 9 из 10 жителей планеты OSZone News Новости железа 1 19-11-2014 09:34
CMD/BAT - Скопировать первую строку из файла AlekseyB. Скриптовые языки администрирования Windows 5 12-09-2013 15:50
Офис и Текст - импорт .vcf clop1000 Программное обеспечение Windows 0 29-06-2013 00:13
Телефоны Microsoft Kin возвращаются из забытия OSZone News Новости железа 0 14-11-2010 08:30




 
Переход