Estou tentando criar um arquivo em lotes para extrair o tamanho total e o espaço livre da unidade C: \ de servidores (script executado localmente). Também preciso que a saída seja facilmente legível, para que bytes não funcione, por isso estou bem com uma linha de comando que cria um arquivo .vbs temporário.
Parece que o seguinte poderia funcionar, mas a formatação / matemática não está correta.
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%
Os comandos acima também estão mostrando apenas espaço livre ... Gostaria também de tamanho total ... Pensando se o seguinte comando pode ser melhor para obter as informações:
WMIC LOGICALDISK GET Name,Size,FreeSpace | find /i "C:"
Observe também que desejo que ele possa ser copiado / colado diretamente em um prompt de comando (não em um arquivo em lotes - requisitos forçados). Eu já removi os "%%" 's do código acima.
Nota: Precisa ser executado de forma nativa no Server 2003+ (para que o Powershell esteja fora, bem como quaisquer utilitários de terceiros).