SOLVED

Trying to create a table via Powershell

%3CLINGO-SUB%20id%3D%22lingo-sub-1428554%22%20slang%3D%22en-US%22%3ETrying%20to%20create%20a%20table%20via%20Powershell%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1428554%22%20slang%3D%22en-US%22%3E%3CP%3EHi%20Guys%2C%20I%20do%20have%20bunch%20of%20target%20folders%20that%20I'm%20trying%20to%20check%20them%20regularly%20via%20PS%20script%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3ERootFolder%5CAAAA0001%5CApps%5C...%3CBR%20%2F%3ERootFolder%5CBBBB0001%5CApps%5C...%3CBR%20%2F%3ERootFolder%5CCCC00001%5CApps%5C...%3CBR%20%2F%3ERootFolder%5CDDDD0001%5CApps%5C...%3CBR%20%2F%3Egoes%20on%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EI%20wanna%20get%20an%20output%20something%20like%20this%3C%2FP%3E%3CP%3ERef%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20AppFolderSize(GB)%3CBR%20%2F%3EAAAA0001%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B3GB%3CBR%20%2F%3EBBBB0001%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%202GB%3CBR%20%2F%3ECCCC0001%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%205GB%3CBR%20%2F%3EDDDD0001%26nbsp%3B%20%26nbsp%3B%208GB%3CBR%20%2F%3Eetc.%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EHas%20someone%20done%20this%3F%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-1428554%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3Epowershell%20script%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1434185%22%20slang%3D%22en-US%22%3ERe%3A%20Trying%20to%20create%20a%20table%20via%20Powershell%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1434185%22%20slang%3D%22en-US%22%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F684253%22%20target%3D%22_blank%22%3E%40MichaelNazli%3C%2FA%3E%26nbsp%3BI%20think%20this%20should%20help%20you.%26nbsp%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-powershell%22%3E%3CCODE%3E%24FoldersInRootFolder%20%3D%20Get-ChildItem%20-Path%20'%5CRootFolder%5CAAAA0001'%20-Directory%20-ErrorAction%20SilentlyContinue%0A%0A%24Results%20%3D%20%40()%0A%0AForEach(%24Folder%20in%20%24FoldersInRootFolder)%0A%20%7B%0A%20%20%24Childs%20%3D%20Get-ChildItem%20-Path%20%24Folder.FullName%20-Recurse%20-Force%20-ErrorAction%20SilentlyContinue%0A%0A%20%20%24Sum%20%3D%200%0A%20%20%20ForEach(%24Child%20in%20%24Childs)%0A%20%20%20%20%7B%0A%20%20%20%20%20%24Sum%20%3D%20%24Child.Length%20%2B%20%24Sum%0A%20%20%20%20%7D%0A%20%20%0A%20%20%24SumMB%20%3D%20%24Sum%20%2F%201GB%0A%0A%20%20%24Props%20%3D%20%5Bordered%5D%40%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Ref%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3D%20%24Folder.Name%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22AppFolderSize(GB)%22%20%3D%20%24(%5Bmath%5D%3A%3ARound(%24SumMB%2C2))%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%24Results%20%2B%3D%20New-Object%20PSObject%20-Property%20%24Props%0A%20%7D%0A%0A%24Results%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3ERegards%3C%2FP%3E%3CP%3EErick%20Moreno%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1441874%22%20slang%3D%22en-US%22%3ERe%3A%20Trying%20to%20create%20a%20table%20via%20Powershell%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1441874%22%20slang%3D%22en-US%22%3E%3CP%3EThanks%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F89674%22%20target%3D%22_blank%22%3E%40Erick%20A.%20Moreno%20R.%3C%2FA%3E%26nbsp%3B%3C%2FP%3E%3CP%3EI'll%20give%20it%20a%20go%20%3A)%3C%2Fimg%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1494922%22%20slang%3D%22en-US%22%3ERe%3A%20Trying%20to%20create%20a%20table%20via%20Powershell%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1494922%22%20slang%3D%22en-US%22%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-powershell%22%3E%3CCODE%3Edir%20c%3A%5CRootFolder%20-dir%20%7C%0A%20%20%20ft%20name%2C%40%7BLabel%3D%E2%80%9DAppFolderSize(GB)%E2%80%9D%3BExpression%3D%20%7B%E2%80%9C%7B0%3An2%7D%20GB%E2%80%9D%20-f%20((dir%20-rec%20%24_%7Cmeasure%20length%20-sum%20-ErrorAction%20SilentlyContinue).sum%20%2F1gb)%7D%7D%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F684253%22%20target%3D%22_blank%22%3E%40MichaelNazli%3C%2FA%3E%26nbsp%3B%20the%20script%20above%20is%20a%20single%20line%20of%20code%20and%20the%20output%20will%20be%20something%20like%20this%3A%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-yaml%22%3E%3CCODE%3EName%20%20%20%20%20%20%20%20%20%20%20%20AppFolderSize(GB)%0A----%20%20%20%20%20%20%20%20%20%20%20%20-----------------%0Akkk%20%20%20%20%20%20%20%20%20%20%20%20%200%2C00%20GB%20%20%20%20%20%20%20%20%20%20%0Am%20%20%20%20%20%20%20%20%20%20%20%20%20%20%202%2C54%20GB%20%20%20%20%20%20%20%20%20%20%0Aoffice2019-last%201%2C88%20GB%20%20%20%20%20%20%20%20%20%20%0Asymbols%20%20%20%20%20%20%20%20%200%2C00%20GB%20%20%20%20%20%20%20%20%20%20%0Aup2%20%20%20%20%20%20%20%20%20%20%20%20%200%2C00%20GB%20%20%20%20%20%20%20%20%20%20%0Auplanner%20%20%20%20%20%20%20%200%2C00%20GB%20%20%20%20%20%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3Ebye%20Gas%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E
Highlighted
New Contributor

Hi Guys, I do have bunch of target folders that I'm trying to check them regularly via PS script;

 

RootFolder\AAAA0001\Apps\...
RootFolder\BBBB0001\Apps\...
RootFolder\CCC00001\Apps\...
RootFolder\DDDD0001\Apps\...
goes on

 

I wanna get an output something like this

Ref                  AppFolderSize(GB)
AAAA0001     3GB
BBBB0001      2GB
CCCC0001      5GB
DDDD0001    8GB
etc. 

 

Has someone done this? 

3 Replies
Highlighted

@MichaelNazli I think this should help you. 

$FoldersInRootFolder = Get-ChildItem -Path '\RootFolder\AAAA0001' -Directory -ErrorAction SilentlyContinue

$Results = @()

ForEach($Folder in $FoldersInRootFolder)
 {
  $Childs = Get-ChildItem -Path $Folder.FullName -Recurse -Force -ErrorAction SilentlyContinue

  $Sum = 0
   ForEach($Child in $Childs)
    {
     $Sum = $Child.Length + $Sum
    }
  
  $SumMB = $Sum / 1GB

  $Props = [ordered]@{
                      Ref   	          = $Folder.Name
                      "AppFolderSize(GB)" = $([math]::Round($SumMB,2))     
                     }
  $Results += New-Object PSObject -Property $Props
 }

$Results

 

Regards

Erick Moreno

Highlighted

Thanks @Erick A. Moreno R. 

I'll give it a go :) 

Highlighted
Best Response confirmed by MichaelNazli (New Contributor)
Solution

 

 

dir c:\RootFolder -dir |
   ft name,@{Label=”AppFolderSize(GB)”;Expression= {“{0:n2} GB” -f ((dir -rec $_|measure length -sum -ErrorAction SilentlyContinue).sum /1gb)}}

 

@MichaelNazli  the script above is a single line of code and the output will be something like this:

 

Name            AppFolderSize(GB)
----            -----------------
kkk             0,00 GB          
m               2,54 GB          
office2019-last 1,88 GB          
symbols         0,00 GB          
up2             0,00 GB          
uplanner        0,00 GB     

 

 

bye Gas