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

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

Ветеран


Contributor


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

Профиль | Отправить PM | Цитировать


Цитата s.i.p.a:
необходимость в батнике, который будет сканировать логические диски на компе »
Перепевка по этому поводу варианта от alpap
Код: Выделить весь код
@Echo Off
cls

Set "String=Свободное место на дисках (байт):  "
FOR /F "usebackq tokens=1,*" %%i IN (`fsutil fsinfo drives`) DO Set "All=%%j" &Call :OutString %%All:\=%%

Echo %String%
Pause
GoTo :Eof

:OutString
	:Begin
		If "%~1"=="" GoTo :Eof
		If Not Exist %1 Shift /1 &GoTo :Begin
		For /f "tokens=3*" %%a in ('dir %1\') do Set "sz=%%a"
		Set "String=%String%%1=%sz%;  "
	Shift /1 &GoTo :Begin
GoTo :Eof
То же, но компактнее
Код: Выделить весь код
@Echo Off
cls
SetLocal EnableExtensions EnableDelayedExpansion

Set "String=Свободное место на дисках (байт):  "
FOR /F "usebackq tokens=1,*" %%i IN (`fsutil fsinfo drives`) DO (
	FOR %%d IN (%%j) DO If Exist %%d (
		For /f "tokens=3*" %%a in ('dir %%d') Do Set "sz=%%a"
		Set "String=!String!%%d=!sz!;  "		
	)
)
Set "String=%String:\=%
Echo %String%
Pause
GoTo :Eof

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 12-06-2018 в 23:55.

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:05, 12-06-2018 | #4