Existe uma maneira de obter a quantidade de espaço livre em disco de um disco ou pasta em um CMD sem ter que instalar alguns aplicativos de terceiros?
Eu tenho um CMD que copia um arquivo grande para um determinado diretório e poderia, é claro, usar o retorno de nível de erro do comando de cópia, mas então tenho que esperar o tempo que leva para copiar o arquivo (por exemplo ... para isso então o o disco está cheio e a operação de cópia falha).
Eu gostaria de saber antes de começar a cópia se é alguma ideia. Tentei usar o utilitário DU.EXE da Sysinternals, mas aquele show ocupava apenas espaço.
Respostas:
Se você executar "
dir c:\
", a última linha fornecerá o espaço livre em disco.Editar: Melhor solução: "
fsutil volume diskfree c:
"fonte
dir ..*
(oudir c:\thing\..*
) mostrará uma lista muito curta, se houver zero ou muitos arquivos no diretório.Uma possível solução:
uma " solução mais avançada ", para Windows XP e além:
A ferramenta de linha de comando do Windows Management Instrumentation (WMIC) (Wmic.exe) pode reunir grandes quantidades de informações sobre o Windows Server 2003, bem como o Windows XP ou Vista. A ferramenta acessa o hardware subjacente usando o Windows Management Instrumentation (WMI). Não para Windows 2000.
Conforme observado por Alexander Stohr nos comentários :
dir
' ainda funcione),dir
' depende da localidade.fonte
@FOR /F "tokens=2 delims==" %%S IN ('wmic /NODE:"%COMPUTERNAME%" LogicalDisk Where ^(DriveType^="3" and DeviceID^="%some_folder:~0,2%"^) Get FreeSpace /VALUE') DO @SET freespace=%%S
fsutil
precisar de privilégios de administrador para executar, independentemente do que você esteja fazendo com ele.Usando este comando, você pode encontrar todas as partições, tamanho e espaço livre:
wmic logicaldisk get size, freespace, caption
fonte
Você pode evitar as vírgulas usando / -C no comando DIR.
Se você quiser comparar o espaço disponível com o espaço necessário, pode fazer algo como o seguinte. Especifiquei o número com separador de milhares e os removi. É difícil entender o número sem vírgulas. O SET / A é legal, mas para de funcionar com números grandes.
fonte
O script a seguir fornecerá bytes livres na unidade:
Observe que isso depende da saída do seu
dir
comando, que precisa da última linha contendo o espaço livre do formato24 Dir(s) 34,071,691,264 bytes free
. Especificamente:for
loop para detectar a linha explicitamente ao invés de confiar na configuraçãobytesfree
para cada linha).tokens=
bit para obter uma palavra diferente).,
caractere (ou você pode alterar a substituição de vírgula para outra coisa).Ele não polui o namespace do seu ambiente, definindo apenas a
bytesfree
variável na saída. Se suadir
saída for diferente (por exemplo, configurações de local ou idioma diferentes), você precisará ajustar o script.fonte
df.exe
Mostra todos os seus discos; capacidade total, usada e livre. Você pode alterar a saída por várias opções de linha de comando.
Você pode obtê-lo em http://www.paulsadowski.com/WSH/cmdprogs.htm , http://unxutils.sourceforge.net/ ou em outro lugar. É um utilitário unix padrão como du.
df -h
irá mostrar todo o espaço em disco usado e disponível na sua unidade. Por exemplo:O Cygwin está disponível gratuitamente em: https://www.cygwin.com/ Ele adiciona muitas ferramentas poderosas ao prompt de comando. Para obter apenas o espaço disponível na unidade M (conforme mapeado no Windows para uma unidade compartilhada), pode-se inserir:
fonte
Usando a solução excelente do paxdiablo , escrevi um script em lote um pouco mais sofisticado, que usa a letra da unidade como o argumento de entrada e verifica se a unidade existe de uma maneira complicada (mas não bonita):
nota1: você pode digitar uma letra simples (por exemplo, x) ou pode usar o formato x: ou x: \ como a letra da unidade no argumento
note2: o script exibirá stderr de% chkfile% apenas se o tamanho for maior que 0
nota3: salvei este script como freedisk.cmd (consulte o uso)
fonte
Eu faço uma variação para gerar isso a partir do script:
volume C: - 49 GB total space / 29512314880 byte(s) free
Eu uso o diskpart para obter essas informações.
fonte
O cscript é um aplicativo de terceiros? Eu sugiro tentar o Microsoft Scripting , onde você pode usar uma linguagem de programação (JScript, VBS) para verificar coisas como List Available Disk Space .
A infraestrutura de script está presente em todas as versões atuais do Windows (incluindo 2008).
fonte
cscript
é o Microsoft Scripting. É a versão do console do interpretador de scripts do Windows (wscript
é a versão GUI).