サーバーのC:\ドライブの合計サイズと空き容量をプルするバッチファイルを作成しようとしています(ローカルで実行するスクリプト)。また、出力を簡単に読み取れるようにする必要があるため、バイトが機能しないため、temp .vbsファイルを作成するコマンドラインがあっても問題ありません。
以下はうまくいくようですが、フォーマット/数学が正しくありません。
setlocal
for /f "tokens=6" %a in ('fsutil volume diskfree C: ^| find "of bytes"') do set diskspace=%a
echo wsh.echo FormatNumber(cdbl(%diskspace%)/1024, 0) > %temp%.\tmp.vbs
for /f %a in ('cscript //nologo %temp%.\tmp.vbs') do set diskspace=%a
del %temp%.\tmp.vbs
echo For example %diskspace%
上記のコマンドも空き領域のみを表示しています...合計サイズも必要です...次のコマンドが情報をプルするのに適しているかどうか疑問に思います:
WMIC LOGICALDISK GET Name,Size,FreeSpace | find /i "C:"
これをコマンドプロンプトに直接コピー/貼り付けできるようにしたいことにも注意してください(バッチファイルではなく、強制された要件です)。上記のコードから「%%」をすでに削除しました。
注:Server 2003+でネイティブに実行する必要があります(Powershellがリリースされ、サードパーティのユーティリティも同様です)。