47 lines
2.1 KiB
HTML
47 lines
2.1 KiB
HTML
<!-- 24 -->
|
|
<p>
|
|
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:
|
|
</p>
|
|
<div class="img zoomable">
|
|
<img src="/static/source_imgs/powershell/pst_3/1.png" alt="" style="height: 250px; width: auto;">
|
|
</div>
|
|
<p>
|
|
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.
|
|
</p>
|
|
<pre><i class="bi bi-copy"> Copiar código</i>
|
|
<code class="code_lightMode">
|
|
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
|
|
}
|
|
}
|
|
</code></pre> |