Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Копирование некоторых свойств папок в txt (http://forum.oszone.net/showthread.php?t=271427)

Liberti 06-11-2013 00:53 2248234

Копирование некоторых свойств папок в txt
 
В общем если это возможно, то задача такая, есть много папок, в каждой из них файлы. И нужен батник который бы собирал в текстовый файл, с каждой папки свойства, типа: название папки, её размер и количество файлов.
Должно всё это выглядеть примерно так:
papka_037
20,3 Mb
120 PIC

papka_038
245 Mb
180 PIC
...

В данный момент такую задачу решаю макросом, но батником думаю было бы в разы быстрее так как скорость выполнения макросом напрямую зависит от скорости открытия окон.
Заранее спасибо за помощь.

Iska 06-11-2013 04:50 2248290

Цитата:

Цитата Liberti
есть много папок »

Где есть?

Liberti 06-11-2013 18:05 2248608

Цитата:

Цитата Iska
Где есть? »

Локально на обыкновенном ПК, например так D:\RF\PROJECT\TPH
Адрес может меняться.

Iska 06-11-2013 20:58 2248735

Liberti, как считается размер папки и количество файлов: только в текущей или со вложенными?

Liberti 07-11-2013 06:36 2248960

Цитата:

Цитата Iska
как считается размер папки и количество файлов: только в текущей или со вложенными? »

Вложенных папок нет, есть только одна основная где лежат папки с которых и нужно переписать свойства, все папки содержат только файлы, jpg

yurfed 07-11-2013 07:51 2248972

Цитата:

Цитата Liberti
Вложенных папок нет, есть только одна основная где лежат папки »

Вы уж определитесь, есть вложенные или нет.
А это что по вашему? D:\RF\PROJECT\TPH

Поиск по форуму уже не работает?
[решено] получить размер каталога с подкаталогами

Iska 07-11-2013 08:13 2248981

Liberti, на WSH:
читать дальше »
Код:

Option Explicit

Dim strRootFolder
Dim objRootFolder
Dim objFolder


If WScript.Arguments.Count = 1 Then
        strRootFolder = WScript.Arguments.Item(0)
       
        With WScript.CreateObject("Scripting.FileSystemObject")
                If .FolderExists(strRootFolder) Then
                        Set objRootFolder = .GetFolder(strRootFolder)
                       
                        With .CreateTextFile(.BuildPath(strRootFolder, "FolderList.txt"), True, True)
                                For Each objFolder In objRootFolder.SubFolders
                                        .WriteLine objFolder.Name
                                        .WriteLine objFolder.Size
                                        .WriteLine objFolder.Files.Count
                                        .WriteLine
                                Next
                               
                                .Close
                        End With
                       
                        Set objRootFolder = Nothing
                Else
                        WScript.Echo "Can't find folder [" & strRootFolder & "]."
                End If
        End With
Else
        WScript.Echo "Usage: wscript.exe " & WScript.ScriptName & " <folder>"
End If

WScript.Quit 0


Сохраните код в файл с расширением .vbs, затем просто перетащите на сохранённый файл искомую папку (например, ту же «D:\RF\PROJECT\TPH»). Результирующий файл будет создан в искомой папке под именем «FolderList.txt».

Liberti 07-11-2013 18:30 2249388

Цитата:

Цитата yurfed
Вы уж определитесь, есть вложенные или нет.
А это что по вашему? D:\RF\PROJECT\TPH
Поиск по форуму уже не работает? »

Папки с которых нужно списать свойства, вложенных не имеют, а адрес где они лежат это адрес. Я конечно далёк от всего этого но думаю есть два варианта работы батника/скрипта, либо изменять в нём адрес нахождения этих папок, либо закинуть этот батник/скрипт в саму папку с папками которыми нужно произвести нужные операции.
А на счёт поиска, я пробивал по свойствам, ничего не нашёл. А ссылка которую вы мне дали мне не подходит, так как там только один нужный мне пункт.

Цитата:

Цитата Iska
Сохраните код в файл с расширением .vbs, затем просто перетащите на сохранённый файл искомую папку (например, ту же «D:\RF\PROJECT\TPH»). Результирующий файл будет создан в искомой папке под именем «FolderList.txt». »

Вот! Отлично! То что надо, только есть небольшой нюанс, размер папки выдаётся в байтах, сможете сделать что бы выдавало в мегабайтах? Как во вкладке общее в свойствах.
И если возможно, после количества картинок дописывалась бы фраза "PIC"

В общем сейчас так:
papka 0067
51464063
166

А нужно так:
papka 0067
49,0 Mb
166 PIC

Iska 07-11-2013 21:09 2249495

Цитата:

Цитата Liberti
размер папки выдаётся в байтах, сможете сделать что бы выдавало в мегабайтах? »

Код:

.WriteLine FormatNumber(objFolder.Size / 2^20, 1) & " Mb"
Цитата:

Цитата Liberti
И если возможно, после количества картинок дописывалась бы фраза "PIC" »

Не вижу смысла, но:
Код:

.WriteLine objFolder.Files.Count & " PIC"

Liberti 07-11-2013 23:33 2249671

Всё работает как надо. Огромное спасибо за помощь!


Время: 19:11.

Время: 19:11.
© OSzone.net 2001-