Следующий скрипт даст вам свободные байты на диске:
@setlocal enableextensions enabledelayedexpansion
@echo off
for /f "tokens=3" %%a in ('dir c:\') do (
set bytesfree=%%a
)
set bytesfree=%bytesfree:,=%
echo %bytesfree%
endlocal && set bytesfree=%bytesfree%
Обратите внимание, что это зависит от вывода вашей команды dir
, которой требуется последняя строка, содержащая свободное место в формате 24 Dir(s) 34,071,691,264 bytes free
. В частности:
- это должна быть последняя строка (или вы можете изменить цикл
for
, чтобы явно определять строку, а не полагаться на установку bytesfree
для каждой строки).
- свободное место должно быть третьим «словом» (или вы можете изменить бит
tokens=
, чтобы получить другое слово).
- разделители тысяч - это
,
символ (или вы можете изменить подстановку с запятой на что-то еще).
Он не загрязняет пространство имен вашей среды, устанавливая только переменную bytesfree
при выходе. Если ваш dir
вывод отличается (например, разные языковые или языковые настройки), вам нужно будет настроить скрипт.