Esta función la hice para hacer conteo de archivos ya sea de forma recursiva o no de los archivos en un directorio, la forma de usarlo es muy sencilla, en la terminal muevete al directorio donde quieres realizar el conteo, la función tiene un parámetro llamado IsRecursive el cual es obligatorio y puede ser T y F donde T = True, hace el conteo de todos los subdirectorios y F = False, hace el conteo solo de los archivos en el direcotrio principal sin considerar subdirectorios, ejemplo:

De la imagen anterior podemos ver que no es recursivo el conteo, pero que encuentra 4 archivos y no hay subfolders, hay 2 archivos pdf, 1 docx y 1 xlsx.

 Copiar código

function CountFilesAndFolders {
	param(
		[string]$IsRecursive
	)
	$curP = pwd
	if ($IsRecursive -eq "") {
		Write-Host "El parametro -IsRecursive es obligatorio y solo acepta T= true o F=false, ejemplo de sitaxis:" -ForegroundColor Red
		Write-Host "CountFilesAndFolders -IsRecursive T"
	}
	elseif (($IsRecursive -eq "T") -or ($IsRecursive -eq "F")) {
		if ($IsRecursive -eq "T") {
			$totalFiles = (Get-ChildItem -Path $curP -Recurse -File | Measure-Object).Count
			$totalFolders = (Get-ChildItem -Path $curP -Recurse -Directory  | Measure-Object).Count
			Get-ChildItem -Path $curP -Recurse -File | group Extension -NoElement  | sort Count -Descending
		}
		elseif ($IsRecursive -eq "F") {
			$totalFiles = (Get-ChildItem -Path $curP -File | Measure-Object).Count
			$totalFolders = (Get-ChildItem -Path $curP -Directory | Measure-Object).Count
			Get-ChildItem -Path $curP -File | group Extension -NoElement  | sort Count -Descending
		}
		
		Write-Host "Total files: " $totalFiles -ForegroundColor Green
		Write-Host "Total folders:" $totalFolders -ForegroundColor Green
	}
	elseif ($IsRecursive -ne "T" -and $IsRecursive -ne "F") {
			Write-Host "Verifica el parametro ingresado" -ForegroundColor Red
	}   
}