Ветеран
Сообщения: 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
|