次のスクリプトは、ドライブの空きバイトを提供します。
@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
すべての行の設定に依存するのではなく、明示的に行を検出することができます)。
- 空きスペースは3番目の「ワード」でなければなりません(または、
tokens=
ビットを変更して別のワードを取得できます)。
- 千単位の区切り文字が
,
文字です(または、置換をコンマから別のものに変更できます)。
bytesfree
終了時に変数のみを設定して、環境の名前空間を汚染することはありません。あなたの場合はdir
出力が異なる(例えば、異なるロケールまたは言語の設定)で、スクリプトを調整する必要があります。