2013-09-06 1 views
0

Я создал свой визуальный базовый скрипт, который выберет все файлы из папки C: и преобразует их в текстовый файл. Это работает только для одного пути к папке, и я не могу создать его для двух путей. Мой текстовый файл также содержит все файлы с размерами файлов из папки C: но мне нужен только «элемент Outlook» из папки C: для извлечения в текст. Посмотрите мой сценарий ниже;Как использовать VBscript для преобразования содержимого содержимого папки в текстовый файл. Он также должен извлекать только тип файла «outlook Item»

Sub Tester() 

Dim ObjOutFile 

    Set ObjOutFile = CreateObject("Scripting.FileSystemObject"). _ 
        CreateTextFile("D:\Users\User\Desktop\outcome.txt") 

    ListFiles ObjOutFile, "D:\MOV1", "Outlook Item" 
    ListFiles ObjOutFile, "D:\MOV2", "Outlook Item" 

    ObjOutFile.Close 

End Sub 


Sub ListFiles(f, folderPath As String, fileType As String) 
Dim ObjFiles, ObjFile, sz 

    fileType = UCase(fileType) 
    Set ObjFiles = CreateObject("Scripting.FileSystemObject") _ 
           .getfolder(folderPath).Files 

    For Each ObjFile In ObjFiles 
     If UCase(ObjFile.Type) = fileType Then 
      sz = Round(ObjFile.Size/1024, 2) 
      f.WriteLine sz & String(50 - Len(sz), " ") & ObjFile.Path 
     End If 
    Next 

End Sub 
+0

жаль ... Это должно быть, «Создание выходного файла для записи файлов размером Set ObjOutFile = fso.CreateTextFile ("C: \ Users \ User \ Desktop \ outcome.txt") – KSR

+0

Прекрасно работает для меня. Вы знаете, что у вас отсутствует разрыв строки между под заголовком 'ListFiles' и следующим выражением' Dim'? –

+0

привет Тиму, попробую еще раз. Я сообщу вам, как только я сделаю изменения. Спасибо – KSR

ответ

0
Sub Tester() 

Dim ObjOutFile 

    Set ObjOutFile = CreateObject("Scripting.FileSystemObject"). _ 
        CreateTextFile("C:\Users\User\Desktop\outcome") 

    ListFiles ObjOutFile, "C:\Users\User\Desktop\Folder A", "Outlook Item" 
    ListFiles ObjOutFile, "C:\Users\User\Desktop\Folder B", "Outlook Item" 

    ObjOutFile.Close 

End Sub 


Sub ListFiles(f, folderPath As String, fileType As String) 
Dim ObjFiles, ObjFile, sz 

    fileType = UCase(fileType) 
    Set ObjFiles = CreateObject("Scripting.FileSystemObject") _ 
           .getfolder(folderPath).Files 

    For Each ObjFile In ObjFiles 
     If UCase(ObjFile.Type) = fileType Then 
      sz = Round(ObjFile.Size/1024, 2) 
      f.WriteLine sz & String(50 - Len(sz), " ") & ObjFile.Path 
     End If 
    Next 

End Sub 
+0

Привет, Тим, ваш сценарий работает хорошо, но мне все еще нужно сохранить размер файла, который преобразуется в КБ, например, для каждого ObjFile в ObjFiles size = Round (ObjFile.size/1024, 2) ObjOutFile.WriteLine size & String (50 - Лен (размер), "") и ObjFile.Path Далее. Любая идея, как я могу ввести ваш скрипт для генерации в текстовый файл с размером файла и типом файла «Пункт Outlook»? Другой вопрос: как насчет 2 разных путей папки и конвертировать в текстовый файл? Ваш ответ очень ценится! – KSR

+0

Вы спрашивали о том, как обрабатывать только объекты Outlook - мой ответ только адресовал это. Если есть другие проблемы, которые возникают у вас, тогда вам нужно задать более конкретные вопросы. –

+0

Мое извинение за это. Я попытался, но я не мог найти ответ. – KSR

Смежные вопросы