PowerShell을 사용하여 폴더 크기 보고서를 생성하는 방법


1

Linux에서는 다음 명령을 사용하여 CSV 출력을 생성 할 수 있습니다.

du -hs /home/*/imap/*/* | sort -rh | sed 's/\//\t/g' | awk '{print $5 " " $6 " " $1}' | sed 's/ /,/g'

이 명령은 다음 구조체와 함께 CSV 파일을 출력합니다.

 domain,username,userfoldersize 

PowerShell을 사용하여 유사한 출력을 얻으려고합니다.

이 코드는 온라인에서 발견되었지만 정확한 크기를 표시하지 않습니다. GB 크기 이상의 폴더 크기는 여전히 MB 단위로 표시됩니다. 또한, 하위 디렉토리로 이동합니다.

$startFolder = 'C:\path\to\mail\domain\user'

$colItems = (Get-ChildItem $startFolder | Measure-Object -property length -sum)
"$startFolder -- " + "{0:N2}" -f ($colItems.sum / 1MB) + " MB"

$colItems = (Get-ChildItem $startFolder -recurse | Where-Object {$_.PSIsContainer -eq $True} | Sort-Object)
foreach ($i in $colItems)
    {
        $subFolderItems = (Get-ChildItem $i.FullName | Measure-Object -property length -sum)
        $i.FullName + " -- " + "{0:N2}" -f ($subFolderItems.sum / 1MB) + " MB"
    }

나는 이런 디렉토리를 가지고있다 : C:\path\to\mail\domain\user 나는 그것의 전체 경로를 user 폴더에 저장하고 user 폴더 크기. 사람이 읽을 수있는 형식. 예 : 500MB, 5GB 등 ...


어떤 보고서를 시도했는데 실패 했나요?
SpiderIce

시험 gci -Path C:\users\blade19899\Desktop -Recurse | measure -Sum Length).Sum. MS는 다운로드 할 수있는 자신의 du를 가지고 있습니다. docs.microsoft.com/en-us/sysinternals/downloads/du
root

@root, 오류가 발생합니다. 그리고 du Windows에 상응하는 버그가 있으며 폴더 크기가 표시되지 않습니다.
blade19899

오류가 무엇입니까?
root

@뿌리 Unexpected token ')' in expression or statement.. 나는 ), 그런 다음 하위 폴더가 아니라 카운트를 표시합니다. 그것으로 시도했다. *운이 없네.
blade19899

답변:


1

귀하의 질문에, 그것은 당신이 리눅스 명령 줄에 익숙한 것으로 보입니다. Windows를 사용하면 반드시 지식을 배제하고 새로운 명령을 익힐 필요는 없습니다. 대신, 이미 알고있는 것을 활용하고 익숙한 것을 계속 사용할 수 있습니다 bash, du, sort, sedawk.

나의 제안 :

  1. 고용 cygwin 또는 cmder 또는 비슷한 수단 물건을 계속 사용하려면
  2. 배우다 Powershell 새로운 일을하는 것

참고 : 때로는 휴대용 설치 만 수행 할 수있는 방법입니다. 이 경우 나는 권하고 싶다. cmder .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.