Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить 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