CCCPaste

8bd9766934986

<#
.SYNOPSIS
Show current directory details

.EXAMPLE
direc -List
.EXAMPLE
direc -GetTextsContent

.NOTES
Alias: direc
#>

[CmdletBinding()]
param (
  # Print children directories status (empty|full)
  [Parameter(ParameterSetName = "List", Position = 0)]
  [switch] $List,
  # Print children textfiles content
  [Parameter(ParameterSetName = "GetTextsContent", Position = 0)]
  [switch] $GetTextsContent
) 

. $SCRIPTSRC

try {
  switch ($true) {
    $List { 
      $dirs = @(Get-ChildItem -Directory) 
      if (!$dirs) {
        Write-Host "❌ No directories" 
        break;
      }

      $full = @{} 
      $empty = @() 
      foreach ($dir in $dirs) {
        Set-Location $dir 
        $size = @(Get-ChildItem).Count 

        if ($size -gt 0) {
          $full["+ $($dir.Name)"] = "$size $($size -eq 1 ? "File." : "Files.")" 
        }
        else {
          $empty += "- $($dir.Name)" 
        }
        Set-Location .. 
      }

      $total = $dirs.Count 
      $fCount = $full.Count 
      $eCount = $empty.Count 
      if ($fCount -lt 1) {
        Write-Host "ℹ️ The $total directories here are empty" 
        break 
      }

      Write-Host $($fCount -eq 1 ? "ℹ️ 1 full directory" : "ℹ️ Full directories: $fCount/$total") 
      foreach ($dir in $full.Keys) {
        Write-Host $dir -ForegroundColor Green 
        Write-Host "$($full[$dir])" 
      }
      Write-Host `r 

      if ($eCount -gt 0) {
        Write-Host $($eCount -eq 1 ? "ℹ️ 1 empty directory" : "ℹ️ Empty directories: $eCount/$total") 
        foreach ($dir in $empty) {
          Write-Host $dir -ForegroundColor Red 
        }
        Write-Host "`n" 
      }
      break 
    }
    $GetTextsContent { 
      $files = @(Get-ChildItem -File) 
      if (!$files) {
        Write-Host "❌ No files"
        break;
      }

      Write-Host "`n" 
      foreach ($file in $files) {
        Write-Host "$($file.Name) :" -ForegroundColor Green 
        Get-Content $file 
        Write-Host "`n" 
      } 
      break 
    }
  }
} catch {
  errorLog
}