|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] узнать размер папок. экспорт в txt |
|
CMD/BAT - [решено] узнать размер папок. экспорт в txt
|
Старожил Сообщения: 267 |
Профиль | Отправить PM | Цитировать
как реализовать через bat либо vbs
чтобы узнать полный размер всех папок, которые находятся с .bat в одной папке. и сохранить список размеров по порядочку в txt (без названия папок. просто столбик размеров в Мб (желательно) либо в Кб) как сделать чтобы полный размер папок считался так, как будто я на нее в винде нажал alt+enter |
|
Отправлено: 20:36, 21-05-2010 |
Ветеран Сообщения: 2706
|
Профиль | Отправить PM | Цитировать it3, VBS
Категорически не советую, пока скрипт не отработал, работать с другой таблицей в другом окне. Путь к таблице, адреса ячеек пропишИте свои. FileXLS = "Z:\Soft_In\я19082113.xlsx" Fname1 = "C6" ' Первая ячейка с путём fsize1 = "F6" ' Первая ячейка с размером koeff = 2 ' 0-байты, 1-Kb, 2-Mb, 3-Gb, 4-Tb With CreateObject("Excel.Application") .Visible = True .Workbooks.Open (FileXLS) i = 0 Do Pfold = .Range(Fname1).Offset(i, 0) If InStr(1, Pfold, "\") = 0 Then Exit Do .Range(fsize1).Offset(i, 0) = FFolderSize(Pfold, koeff) i = i + 1 Loop End With MsgBox "Done!" ' =============================== Function FFolderSize(arg, k) On Error Resume Next Err.Number = 0 FFolderSize = CreateObject("Scripting.FileSystemObject").GetFolder(arg).Size If Err.Number <> 0 Then FFolderSize = Err.Description Else If k = 1 Then FFolderSize = FFolderSize / 1024 If k = 2 Then FFolderSize = FFolderSize / 1024 / 1024 If k = 3 Then FFolderSize = FFolderSize / 1024 / 1024 / 1024 If k = 4 Then FFolderSize = FFolderSize / 1024 / 1024 / 1024 / 1024 End If On Error GoTo 0 End Function Цитата Iska:
В скрипте решил, что здесь удобнее приделать еще один аргумент, поэтому чуть доработал. |
|
------- Отправлено: 14:54, 21-08-2019 | #51 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Crazy Сообщения: 1171
|
Профиль | Отправить PM | Цитировать Цитата it3:
Цитата it3:
в скрипт встроен таймер, результат выводится в файл execution_speed.txt таймер безболезненно можно удалить (первые две строки и последние тоже две) $watch = [system.diagnostics.stopwatch]::startnew() #таймер $watch.start() #запуск таймера function Get-SizeDirectory { param ( [parameter(ValueFromPipeline=$true)] [string[]]$arr ) process { foreach ($item in $arr) { $tmp = gi $item $math = dir -lit $tmp.fullname -rec -force| ?{!$_.psiscontainer}|measure -prop length -sum [pscustomobject]@{ Name = $tmp.name #Имя каталога Fullname = $tmp.fullname #Абсолютный путь с именем Count = $math.count #Счетчик файлов в каталоге Size = "{0:G}" -f ($math.sum/$k) #Размер каталога } } } } #Перечисление каталогов непосредственно в скрипте: #для использования, блок раскомментировать, при этом, необходимо #закомментировать обе строки получения массива из файла ниже <# $fld = @( 'O:\Folder1', 'O:\Folder1\podFolder1', 'O:\Folder2\podFolder2\podpodFolder2' #и т.д. ) #> #Либо получение массива каталогов из текстового файла (один каталог на строку) $file = 'd:\folders.txt' $fld = gc $file -enc utf8 #Коэффициент единиц размера каталогов (На выбор: <1|1Kb|1Mb|1Gb|1Tb>): $k = '1Gb' #Файл .csv с результатом: $out = 'result.csv' $fld|get-sizedirectory|select fullname,count,size| convertto-csv -not -del ';'|out-file $out -enc utf8 $watch.stop() #остановка таймера $watch.elapsed >execution_speed.txt #время выполнения |
||
------- Последний раз редактировалось YuS_2, 21-08-2019 в 21:37. Отправлено: 20:52, 21-08-2019 | #52 |
Пользователь Сообщения: 94
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
Хотя, по факту, путь правильный, и если пройти по этому пути, и провалиться в подкаталог, и вставить этот путь в табличку, то размер считывается, а корневой каталог, не считывается. Привилегии полные. |
|
Отправлено: 09:48, 22-08-2019 | #53 |
Ветеран Сообщения: 2706
|
Профиль | Отправить PM | Цитировать it3, Не знаю.
Цитата it3:
Цитата Козьма Прутков:
Мой полёт извращенной фантазии: 1. Вместо латинской буквы стоИт русская: (О-O, например) 2. В ячейке в пути перед путём есть пробел(ы). 3. Путь указан в кавычках без знака = впереди. То есть, "D:\Тра ля ля" - нельзя, а ="D:\Тра ля ля" можно. Естественно, можно просто D:\Тра ля ля (без пробела впереди) Я бы рекомендовал для указанных Вами путей, где получили "Путь не найден" найти эту папку в проводнике, правой кнопкой мышки вызвать свойства, в закладке Общие, строке Расположение выделить и скопировать путь, вставить в ячейку таблицы. А вот еще возможность: скопировать указанный путь из ячейки таблицы, и в командном окне проделать Dir "вставленный из буфера путь\*.*" Посмотреть, что на это скажет команда Dir Весь этот Марлезонский балет нужен, чтобы убедиться в правильности указания пути. |
||
------- Последний раз редактировалось megaloman, 22-08-2019 в 10:37. Отправлено: 10:27, 22-08-2019 | #54 |
Пользователь Сообщения: 94
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
Даже если скопировать этот путь из Excel и вставить в проводник - путь рабочий. Если вставить из Excel в командную строку - тоже работает. |
|
Отправлено: 10:51, 22-08-2019 | #55 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать it3, ну, упакуйте Ваш получившийся файл Рабочей книги в архив, каковой приложите к сообщению.
|
Отправлено: 11:17, 22-08-2019 | #56 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - [решено] Размер папок | NIC444 | Microsoft Windows 7 | 5 | 15-09-2014 09:32 | |
Отображаемый размер квотируемых папок | rrev | Microsoft Windows NT/2000/2003 | 7 | 29-09-2009 09:46 | |
[решено] Вставить строчку из одного txt в оределённое место другого txt | ZeroCrash | AutoIt | 7 | 13-07-2009 07:35 | |
Ограничения на размер профиля+исключение папок из профиля | Grug | Microsoft Windows NT/2000/2003 | 2 | 04-03-2009 11:09 | |
Доступ - Ограничение на размер папок | Xavier Teodonius | Microsoft Windows 2000/XP | 2 | 10-04-2008 12:12 |
|