Como posso encontrar o tamanho de uma pasta usando o Powershell?

21

Eu quero ser capaz de ver o tamanho de uma pasta (todos os conteúdos, incluindo subpastas e seu conteúdo). Eu não consigo encontrar um comando do PowerShell para fazer isso, mas eu não quero ter que abrir o Windows Explorer toda vez que eu quiser saber o tamanho. Existe uma maneira simples de conseguir isso de dentro do Powershell?

Jacob Smart
fonte

Respostas:

25

Tenho certeza que recebi isso de uma dica do dia do Powershell; Não me lembro com certeza, mas eu tenho usado há muito tempo e tem sido muito útil.

"{0:N2}" -f ((Get-ChildItem -path C:\InsertPathHere -recurse | Measure-Object -property length -sum ).sum /1MB) + " MB"

Edit: Para facilitar o uso (para que você não precise se lembrar e digitar tudo isso a cada vez), você pode adicioná-lo ao seu perfil como uma função, assim:

function Get-Size
{
 param([string]$pth)
 "{0:n2}" -f ((gci -path $pth -recurse | measure-object -property length -sum).sum /1mb) + " mb"
}

E então use como qualquer comando:

Get-size C:\users\administrator
Darian Everett
fonte
1
Estou curioso, como adiciono isso a um perfil do PowerShell? Você quer dizer ponto de sourcing ? (nota lateral: o código pode ser formatado adicionando 4 espaços em branco no início)
nixda
2
Você pode . fonte seu perfil se você fez alterações e não quer reiniciar sua sessão PS, mas carrega automaticamente toda vez que você inicia o Powershell, então você geralmente não faria isso. Para criar seu perfil pela primeira vez, faça o seguinte: ni $ profile -type f -fo Então você pode abrir e editar seu perfil. Para descobrir onde ele está localizado, basta digitar $ profile no shell e o caminho será exibido. Então qualquer função que você adicionar, como a acima, está disponível como está embutida. Obrigado pela dica de formatação do código também
Darian Everett
1
+1 Whoa não sabia esse truque. Fascinante :)
nixda
1
o que {0:N2} Faz?
soandos
1
Formatação. O zero é o marcador do lugar, o N2 significa que é um número com duas casas decimais.
Darian Everett
8

Está no site da Microsoft Technet Aqui

entrada:

Get-ChildItem C:\Scripts -recurse | Measure-Object -property length -sum

saída:

Count    : 58
Average  :
Sum      : 1244611
Maximum  :
Minimum  :
Property : length
50-3
fonte
No entanto, isso pode estar muito longe, já que você precisa verificar recursivamente se a pasta tem subpastas. Além disso, o que é essa medida, bits?
Austin T French
Corrija os bits - também esqueci de incluir o interruptor recurse que não tenho editado - note também que eu estava postando principalmente para fornecer o artigo technet sobre como realizar essa pesquisa pelo google (tamanho da pasta powershell) para que OP pudesse ter uma compreensão completa do comandos usados ​​não apenas a resposta
50-3
Obrigado pelas atualizações, é um ajuste melhor agora, acho que para o formato de perguntas e respostas.
Austin T French