Quantcast
Channel: PowerShell.com – PowerShell Scripts, Tips, Forums, and Resources
Viewing all articles
Browse latest Browse all 6937

Listing Folders & Subfolders & Size Export to CSV

$
0
0

I need help trying to list Folders and Subfolders and get there size in KB or  MB or GB or TB or PT  

and finally I need to export it to a CSV .


$events = @()

$startfolder = "c:\Temp"
 $folders = get-childitem $startfolder | where {$_.PSiscontainer -eq "True"}
 foreach ($fol in $Folders) {
 $colItems = (Get-ChildItem $fol.fullname -recurse | Measure-Object -property length -sum)


If ( $colItems.sum -lt 1KB ) { $colItemsOutput = "$("{0:N0}" -f ($colItems.sum / 1)) Bytes" }
ElseIf ( $colItems.sum -lt 1MB ) { $colItemsOutput = "$("{0:N2}" -f ($colItems.sum / 1KB)) KB" }
ElseIf ( $colItems.sum -lt 1GB ) { $colItemsOutput = "$("{0:N2}" -f ($colItems.sum / 1MB)) MB" }
ElseIf ( $colItems.sum -lt 1TB ) { $colItemsOutput = "$("{0:N2}" -f ($colItems.sum / 1GB)) GB" }
ElseIf ( $colItems.sum -lt 1PB ) { $colItemsOutput = "$("{0:N2}" -f ($colItems.sum / 1TB)) TB" }
ElseIf ( $colItems.sum -ge 1PB ) { $colItemsOutput = "$("{0:N2}" -f ($colItems.sum / 1PB)) PB" }

$Event = "$($fol.fullname) $colItemsOutput `r`n"

$events+=$event 

$events | export-csv -notypeinformation -path c:\Temp\files.csv

     } 

 

Here is the current output with out the export , but not sure why it is grabbing the test folder twice.


C:\Temp\test 1.86 GB

C:\Temp\test 1.86 GB

C:\Temp\welltesting 0 Bytes

 

I updated the script now able to export it to a CVS but lost the sizes of folders. 

 

$events = @()

$startfolder = "c:\Temp"
 $folders = get-childitem $startfolder | Where-Object {$_.PSiscontainer -eq "True"}
 ForEach ($fol in $Folders) {

 $colItems = (Get-ChildItem $fol.fullname -recurse | Measure-Object -property length -sum | Select-Object Folders, Size)


If ( $colItems.sum -lt 1KB ) { $colItemsOutput = "$("{0:N0}" -f ($colItems.sum / 1)) Bytes" }
ElseIf ( $colItems.sum -lt 1MB ) { $colItemsOutput = "$("{0:N2}" -f ($colItems.sum / 1KB)) KB" }
ElseIf ( $colItems.sum -lt 1GB ) { $colItemsOutput = "$("{0:N2}" -f ($colItems.sum / 1MB)) MB" }
ElseIf ( $colItems.sum -lt 1TB ) { $colItemsOutput = "$("{0:N2}" -f ($colItems.sum / 1GB)) GB" }
ElseIf ( $colItems.sum -lt 1PB ) { $colItemsOutput = "$("{0:N2}" -f ($colItems.sum / 1TB)) TB" }
ElseIf ( $colItems.sum -ge 1PB ) { $colItemsOutput = "$("{0:N2}" -f ($colItems.sum / 1PB)) PB" }

# $Event = "$($fol.fullname) $colItemsOutput `r`n"
# $events += $Event


  $output= New-Object -TypeName PSObject -Property @{
        Size    = $colItemsOutput
 Folders = $($fol.fullname)
        }
    

$events+=$output

}
$events | select Folders, Size | export-csv -notypeinformation -path c:\Temp\files.csv

 

Output :

FoldersSize
C:\Temp\test0 Bytes
C:\Temp\welltesting0 Bytes

 

 


Viewing all articles
Browse latest Browse all 6937

Trending Articles