CMD/BAT - Скопировать телефоны из .VCF
-
Valek271183
CMD/BAT - Скопировать телефоны из .VCF
Есть папка с кучей контактов в формате .VCF (Например Вася.VCF, Маша.VCF и т.д.), в каждом из них есть строчка с телефоном начинающаяся с TEL;CELL:89055000000 Можно ли из этой кучи контактов сделать один файлик с Именами и Телефонами с помощью CMD/BAT ?
-
Iska
Re: CMD/BAT - Скопировать телефоны из .VCF
Valek271183, упакуйте пару-тройку таких файла в архив, выложите сюда или на RGhost.
-
Valek271183
-
Iska
Re: CMD/BAT - Скопировать телефоны из .VCF
Valek271183, попробуйте так (на WSH):
Скрытый текст
[spoiler]Код: [/spoiler]
Исходная папка задаётся аргументом скрипта (можно просто перетащить папку на скрипт в Проводнике).
Скрытый текст
[spoiler]Код: [/spoiler]
Код: Выделить всё
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 & " "
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
Re: CMD/BAT - Скопировать телефоны из .VCF
Пишет Сценарий не указан, папка с контактами с именем 123 с корне диска С:\ - перетаскиваю её на скрипт и пишет Сценарий не указан
-
Iska
Re: CMD/BAT - Скопировать телефоны из .VCF
Цитата Valek271183:
Пишет Сценарий не указан,
Сохраняйте код в файл с расширением «.vbs», а не «.wsh».
Пишет Сценарий не указан,
CMD/BAT - Скопировать телефоны из .VCF
Сохраняйте код в файл с расширением «.vbs», а не «.wsh».
-
Valek271183
Re: CMD/BAT - Скопировать телефоны из .VCF
Пишет ошибку Can't find Name and Phone in file
строка 37 символ 8 недопустимый вызов или аргумент процедуры
строка 37 символ 8 недопустимый вызов или аргумент процедуры
-
Iska
Re: CMD/BAT - Скопировать телефоны из .VCF
Цитата Valek271183:
Пишет ошибку Can't find Name and Phone in file
В каком именно файле пишет?
Цитата Valek271183:
строка 37 символ 8 недопустимый вызов или аргумент процедуры
Покажите скриншот или содержимое окна ошибки («Ctrl-C» в окне сообщения об ошибке).
Пишет ошибку Can't find Name and Phone in file
CMD/BAT - Скопировать телефоны из .VCF
В каком именно файле пишет?
Цитата Valek271183:
строка 37 символ 8 недопустимый вызов или аргумент процедуры
CMD/BAT - Скопировать телефоны из .VCF
Покажите скриншот или содержимое окна ошибки («Ctrl-C» в окне сообщения об ошибке).
-
Valek271183
Re: CMD/BAT - Скопировать телефоны из .VCF
---------------------------
Windows Script Host
---------------------------
Сценарий: C:\Text.vbs
Строка: 37
Символ: 8
Ошибка: Недопустимый вызов или аргумент процедуры
Код: 800A0005
Источник: Ошибка выполнения Microsoft VBScript
---------------------------
ОК
---------------------------
это при перетаскивание на Text.vbs
Windows Script Host
---------------------------
Сценарий: C:\Text.vbs
Строка: 37
Символ: 8
Ошибка: Недопустимый вызов или аргумент процедуры
Код: 800A0005
Источник: Ошибка выполнения Microsoft VBScript
---------------------------
ОК
---------------------------
это при перетаскивание на Text.vbs
-
Iska
Re: CMD/BAT - Скопировать телефоны из .VCF
Давайте уточним: строка 37 — это: «objTS.WriteLine QuotedPrintableDecode(Trim(.Item(1)), .Item(0)) & "," & .Item(2) & "," & objFile.Path», так?