DIR コマンドで /-C を使用すると、カンマを避けることができます。
FOR /F "usebackq tokens=3" %%s IN (`DIR C:\ /-C /-O /W`) DO (
SET FREE_SPACE=%%s
)
ECHO FREE_SPACE is %FREE_SPACE%
利用可能なスペースと必要なスペースを比較したい場合は、次のようにすることができます。桁区切り記号で数字を指定してから、それらを削除しました。カンマ無しで数を把握するのは難しい。SET /A は便利ですが、数が多いと機能しなくなります。
SET EXITCODE=0
SET NEEDED=100,000,000
SET NEEDED=%NEEDED:,=%
IF %FREE_SPACE% LSS %NEEDED% (
ECHO Not enough.
SET EXITCODE=1
)
EXIT /B %EXITCODE%
アップデート:
2014年以降、多くのことが変わりました。より良い答えがあります。現在サポートされているすべての Microsoft Windows システムで利用できる PowerShell を使用します。
以下のコードは、スクリプトが cmd.exe をラッパーとして使用せずに PowerShell で記述されている場合、より明確で理解しやすくなります。PowerShell Core を使用している場合は、に変更powershell
しpwsh
ます。
SET "NEEDED=100,000,000"
SET "NEEDED=%NEEDED:,=%"
powershell -NoLogo -NoProfile -Command ^
$Free = (Get-PSDrive -Name 'C').Free; ^
if ($Free -lt [int64]%NEEDED%) { exit $true } else { exit $false }
IF ERRORLEVEL 1 (
ECHO "Not enough disk space available."
) else (
ECHO "Available disk space is adequate."
)