Get free space of "C:" drive using batch file [duplicate]
I want to write a batch file which gives me free space left in C drive.
The following script will give you free bytes on the drive:
@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%
Note that this depends on the output of your dir
command, which needs the last line containing the free space of the format 24 Dir(s) 34,071,691,264 bytes free
. Specifically:
- it must be the last line (or you can modify the
for
loop to detect the line explicitly rather than relying on settingbytesfree
for every line). - the free space must be the third "word" (or you can change the
tokens=
bit to get a different word). - thousands separators are the
,
character (or you can change the substitution from comma to something else).
It doesn't pollute your environment namespace, setting only the bytesfree
variable on exit. If your dir
output is different (eg, different locale or language settings), you will need to adjust the script.
精彩评论