Como obter o tamanho total de um disco ou partição (um disco rígido USB com 1 partição NTFS) em um arquivo em lotes?
Prefiro não usar a lógica que repassa arquivos recursivamente (aqueles com / f), pois é uma unidade de 1 TB e pode levar muito tempo para determinar o tamanho.
Estou aberto a usar alguma pequena ferramenta de terceiros que retornará o tamanho ao arquivo em lotes.
PS: Estou no Windows 7 x64 Ultimate
windows-7
windows
batch
disk-space
tumchaaditya
fonte
fonte
Respostas:
Provavelmente existe uma maneira mais fácil de fazer isso, mas aqui está o que eu uso
Se tudo o que você deseja são bytes, basta executar este comando, altere T para a letra da unidade externa (para um liner no prompt de comando, altere
%%
para%
eset space=
paraecho
)se você quiser pegá-lo e simplificá-lo, primeiro defina diretrizes para cada tamanho
Em seguida, escreva um script VBS temporário, pois o lote não pode lidar com a matemática
Execute-o, capture o resultado e exclua-o
Em seguida, o seguinte apara o resultado em duas casas decimais
Resultados de eco
[EDITAR]
Para o tamanho total , você pode usar o volume da lista de partições de disco (altere
"%%a"=="T"
para"%%a"=="driveletterhere"
)e bônus como você pode calcular isso:
fonte
echo list volume | diskpart
, verá quelist volume
é ecoadodiskpart
, isso pode ser feito na linha de comando, desde que você escape|
. E não sei por que os tokens são diferentes para você, mas estou feliz que você possa descobrir isso.Talvez tente o
df.exe
que está disponível em http://unxutils.sourceforge.net/ e em outros locais. Esta é uma cópia de uma ferramenta de linha de comando UNIX.Você também deve conseguir obter o valor diretamente da Interface de Gerenciamento do Windows (WMI), embora eu tenha medo que minhas habilidades nessa área não sejam boas o suficiente para dar uma resposta direta.
fsutil volume diskfree c:
lhe dará três linhas de saída que você provavelmente poderia usar umfind
on para obter o resultado desejado.Exemplo de saída:
fsutil volume diskfree c: | find "Total # of bytes"
fornece uma linha específica.fornece o número com um espaço anterior.
Para uma comparação:
NOTA: O fsutil requer direitos de administrador, portanto, isso pode não funcionar em computadores bloqueados.
fonte
find
texto para combinar com a linha apropriada.