バッチスクリプトでハードドライブの空き容量を確認する方法はありますか?
多くのフォームに記入する必要があるため、サードパーティのアプリを使用したくありません。その場合は、自分で小さなアプリを作成すると思います。
空きディスク領域を確実に取得する最も簡単な方法は、WMIを使用することです。 dir
の出力を解析しようとすると、少なくとも他の言語のWindowsのバージョンでは、あらゆる種類の面白い問題が発生します。 wmic
を使用して、ドライブの空き容量を照会できます。
wmic logicaldisk where "DeviceID='C:'" get FreeSpace
これは次のようなものを出力します
FreeSpace
197890965504
/format:value
スイッチを追加することで、これを1行に強制できます。
> wmic logicaldisk where "DeviceID='C:'" get FreeSpace /format:value
FreeSpace=197890965504
ただし、処理には適さない空の行がいくつかあります(約3または4)。幸運なことに、トークン化を行う場合、for
コマンドを使用してそれらを削除できます。
for /f "usebackq delims== tokens=2" %x in (`wmic logicaldisk where "DeviceID='C:'" get FreeSpace /format:value`) do set FreeSpace=%x
ここでの良い点は、2番目のトークンのみを使用しているため、すべての空の行(2番目のトークンがない)は無視されるということです。
これをバッチファイルで使用する場合は、%
記号を2倍にしてください。
for /f "usebackq delims== tokens=2" %%x in (`wmic logicaldisk where "DeviceID='C:'" get FreeSpace /format:value`) do set FreeSpace=%%x
これで、環境変数%FreeSpace%
に格納されている空き領域を使用できます。
ここにあなたのCドライブをチェックする簡単なスクリプトがあります
echo Cドライブの空き領域>> CDrive.txt
dir c:\ | find/i "空きバイト" >> CDrive.txt