Valek271183 |
18-05-2015 11:42 2508628 |
Скопировать телефоны из .VCF
Есть папка с кучей контактов в формате .VCF (Например Вася.VCF, Маша.VCF и т.д.), в каждом из них есть строчка с телефоном начинающаяся с TEL;CELL:89055000000 Можно ли из этой кучи контактов сделать один файлик с Именами и Телефонами с помощью CMD/BAT ?
|
Valek271183, упакуйте пару-тройку таких файла в архив, выложите сюда или на RGhost.
|
Valek271183 |
18-05-2015 11:53 2508636 |
|
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
'=============================================================================
Исходная папка задаётся аргументом скрипта (можно просто перетащить папку на скрипт в Проводнике).
|
Valek271183 |
18-05-2015 14:02 2508681 |
Пишет Сценарий не указан, папка с контактами с именем 123 с корне диска С:\ - перетаскиваю её на скрипт и пишет Сценарий не указан
|
Цитата:
Цитата Valek271183
Пишет Сценарий не указан, »
|
Сохраняйте код в файл с расширением «.vbs», а не «.wsh».
|
Valek271183 |
18-05-2015 16:18 2508711 |
Пишет ошибку Can't find Name and Phone in file
строка 37 символ 8 недопустимый вызов или аргумент процедуры
|
Цитата:
Цитата Valek271183
Пишет ошибку Can't find Name and Phone in file »
|
В каком именно файле пишет?
Цитата:
Цитата Valek271183
строка 37 символ 8 недопустимый вызов или аргумент процедуры »
|
Покажите скриншот или содержимое окна ошибки («Ctrl-C» в окне сообщения об ошибке).
|
Valek271183 |
18-05-2015 16:32 2508719 |
---------------------------
Windows Script Host
---------------------------
Сценарий: C:\Text.vbs
Строка: 37
Символ: 8
Ошибка: Недопустимый вызов или аргумент процедуры
Код: 800A0005
Источник: Ошибка выполнения Microsoft VBScript
---------------------------
ОК
---------------------------
это при перетаскивание на Text.vbs
|
Давайте уточним: строка 37 — это: «objTS.WriteLine QuotedPrintableDecode(Trim(.Item(1)), .Item(0)) & "," & .Item(2) & "," & objFile.Path», так?
|
Valek271183 |
18-05-2015 16:36 2508721 |
Вот эта вот
objTS.WriteLine QuotedPrintableDecode(Trim(.Item(1)), .Item(0)) & "," & .Item(2) & "," & objFile.Path
|
Valek271183, ясно. Смоделировал Вашу ситуацию под Windows 7. Действительно, именно так и есть. Тот же самый код под Windows XP исполняется без проблем.
Буду искать причину.
|
Время: 01:04.
© OSzone.net 2001-