web-dev-qa-db-ja.com

バッチコマンドを使用してディスクの空き容量を確認する

バッチスクリプトでハードドライブの空き容量を確認する方法はありますか?

多くのフォームに記入する必要があるため、サードパーティのアプリを使用したくありません。その場合は、自分で小さなアプリを作成すると思います。

4

空きディスク領域を確実に取得する最も簡単な方法は、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%に格納されている空き領域を使用できます。

11
Joey

ここにあなたのCドライブをチェックする簡単なスクリプトがあります

echo Cドライブの空き領域>> CDrive.txt

dir c:\ | find/i "空きバイト" >> CDrive.txt

3
Bob