|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Определение размера папки |
|
|
Любой язык - [решено] Определение размера папки
|
Старожил Сообщения: 303 |
Доброго.
Подскажите, как реализовать задачу: Требуется в списке компов (в текстовом файле (Формат: PC00T1 построчно)) на диске C:\ в папке ProgramData проверить наличие папки (например ТЕСТ) и определить размер папки, далее вывести в лог [Имя ПК]-[Если папки нет, то записывает ее отсутствие]-[Размер папки в формате Мбайт] Спасибо. |
|
Отправлено: 12:56, 01-04-2016 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Цитата Fantastish:
Цитата Fantastish:
|
||
------- Последний раз редактировалось megaloman, 02-04-2016 в 09:50. Отправлено: 09:38, 02-04-2016 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1758
|
Размер папки узнать легко. На счет списка компьютеров, то на этот вопрос, без реального тестирования ответить не могу.
PowerShell: $size = get-childitem "C:\ProgramData\ТЕСТ" -force -recurse | measure-object length -sum 'Size of C:\ProgramData\ТЕСТ is {0:0.00}Mb' -f ($size.sum / 1mb) |
Последний раз редактировалось Foreigner, 02-04-2016 в 13:30. Отправлено: 10:43, 02-04-2016 | #3 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Foreigner, Я в полном восторге от того, что поиск "File(s)" в таком контексте годится для системы с русскоязычным интерфейсом.
Вот еще вариант без findstr @echo off cls Set "In=z:\ProgramData\rrr" SetLocal EnableExtensions EnableDelayedExpansion If Exist "%In%" ( for /f "usebackq tokens=3" %%i in (`dir /s /-c "%In%" 2^>nul`) do Set A=!B! & Set B=%%i Set /A A=!A!/1048576 Echo !A!Mb in %In% ) Else ( Echo Not Exist %In% ) Можно попытаться для корректности отображения применить такое выражение для перевода в мегабайты с десятичным округлением вместо имеющегося |
------- Последний раз редактировалось megaloman, 02-04-2016 в 19:47. Отправлено: 18:15, 02-04-2016 | #4 |
Забанен Сообщения: 793
|
Если использовать robocopy, то переводить в Мб не нужно.
@echo off setlocal set "dir=%programfiles%\Test" if not exist "%dir%" echo:Does not exist.&goto:eof pushd "%dir%" for /f "tokens=3,4" %%i in ( 'robocopy . . * /l /s /v /r:1 /w:1 ^| findstr /irc:"bytes"' ) do echo:%dir%: %%i%%j popd endlocal exit /b На счет PS... можно было бы короче: |
|
Отправлено: 19:04, 02-04-2016 | #5 |
Старожил Сообщения: 303
|
Профиль | Отправить PM | Цитировать Прошу прощения не мог ответить.
Цитата megaloman:
|
|
Отправлено: 09:46, 06-04-2016 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Fantastish:
|
|
Отправлено: 11:00, 06-04-2016 | #7 |
Старожил Сообщения: 303
|
Профиль | Отправить PM | Цитировать процесс реализация (работы/механизма) скрипта в принципе не так критичен, чем проще тем проще
главное из списка машин собрать информацию, чтобы руками не проходить не искать |
Отправлено: 13:29, 06-04-2016 | #8 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать @Echo off cls Set "Spis=Z:\Spis_Comp.txt" Set "Logf=Z:\Logfile.txt" Set "Shar=C$\ProgramData\Тест" rem Set "Shar=C$\ProgramData\Application Data" SetLocal EnableExtensions EnableDelayedExpansion Del "%Logf%" 2>nul FOR /F "usebackq delims=" %%c IN ("%Spis%") DO Call :ComPing "%%c" GoTo :Eof :ComPing Ping -n 1 -w 1000 %~1 >nul 2>nul If Not !ERRORLEVEL!==0 ( Echo ??? %1 Не в сети >>"%Logf%" ) Else ( Call :Dostup "\\%~1\%Shar%" ) ) GoTo :Eof :Dostup Set "Share=%~1" If Exist "%Share%\" ( Dir "%Share%\*.*" >nul 2>nul If Not !ERRORLEVEL!==0 ( Echo --- Нет доступа %Share% >>"%Logf%" ) Else ( Call :SizeDir "%Share%" ) ) Else ( Echo --- Не существует %Share% >>"%Logf%" ) GoTo :Eof :SizeDir for /f "usebackq tokens=3" %%i in (`dir /s /-c %1 2^>nul`) do Set A=!B! & Set B=%%i rem Set /A A=!A!/1048576 Set /A A=^(^(!A!*10^)/1048576+5^)/10 Echo +++ !A!Mb в %1 >>"%Logf%" GoTo :Eof |
------- Отправлено: 10:51, 07-04-2016 | #9 |
Старожил Сообщения: 303
|
Профиль | Отправить PM | Цитировать Спасибо, вопрос, а как может быть вот такое значение
![]() |
Отправлено: 09:29, 08-04-2016 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Определение размера папки+подпапок на удаленном компьютере в домене | saintman | Скриптовые языки администрирования Windows | 0 | 10-12-2013 12:06 | |
VBS/WSH/JS - определение размера файла | D_e_n_n | Скриптовые языки администрирования Windows | 9 | 24-02-2012 17:09 | |
Redhat/Fedora - [решено] Определение размера директории | VladDV | Общий по Linux | 4 | 27-12-2010 10:42 | |
FreeBSD - sh - Определение размера каталога | mitsumoto | Общий по FreeBSD | 2 | 28-02-2010 18:47 | |
Неправильное определение размера винта | ukio | Непонятные проблемы с Железом | 15 | 01-12-2006 15:46 |
|