77 lines
3.6 KiB
HTML

<!-- 23 -->
<p>
Esta función la hice pensando en que a veces quiero obtener de forma recursiva el listado de archivos en mi equipo
para eliminarlos, renombrarlos u ordenarlos, por ello hice una función que retorna en un archivo txt:
</p>
<ol class="lst">
<li style="margin: 0; padding: 0;">Nombre del archivo</li>
<li style="margin: 0; padding: 0;">Extensión</li>
<li style="margin: 0; padding: 0;">Fecha última modificación</li>
<li style="margin: 0; padding: 0;">Ruta del archivo</li>
<li style="margin: 0; padding: 0;">Tamaños del Archivo</li>
<li style="margin: 0; padding: 0;">Año</li>
<li style="margin: 0; padding: 0;">Mes</li>
<li style="margin: 0; padding: 0;">Día</li>
<li style="margin: 0; padding: 0;">Hora</li>
<li style="margin: 0; padding: 0;">Minuto</li>
<li style="margin: 0; padding: 0;">Segundo</li>
</ol>
<p>
La forma de usarlo es muy sencilla, en tu terminal mueve a la carpeta que deseas obtener de forma recursiva el
listado
de archivos, luego llama a la función, ejemplo: <br><br>
Quiero exportar la información de mi carpeta de descargas, y quiero que el archivo se llame carpeta_descargas.
</p>
<div class="img zoomable">
<img src="/static/source_imgs/powershell/pst_2/1.png" alt="">
</div>
<p>
Cómo podemos ver en la imagen anterior, el archivo se guardará como <b>carpeta_descargas</b> y al final te dice en
que ruta se guardará el documento, te recomiendo que abras un nuevo archivo de excel e importes el documento para
que veas la información tabulada.
</p>
<ol class="lst">
<li style="margin: 0; padding: 0;">Abrir un nuevo documento de Excel.</li>
<li style="margin: 0; padding: 0;">En la barra de herramientas seleccionar la opción de datos.</li>
<li style="margin: 0; padding: 0;">Seleccionar la opción "De texto/CSV".</li>
<li style="margin: 0; padding: 0;">Ir a la ruta donde se guardó el archivo y seleccionarlo.</li>
<span>En la ventana emergente seleccionar las opciones:</span>
<li style="margin: 0; padding: 0;">Origen de archivo: 1252: Europeo occidental (Windows)</li>
<li style="margin: 0; padding: 0;">Delimitador: --Personalizado-- y en la casilla de abajo coloca un pipe |</li>
<li style="margin: 0; padding: 0;">Detección del tipo de datos: Basado en las primeras 200 filas</li>
</ol>
<pre><i class="bi bi-copy"> Copiar código</i>
<code class="code_lightMode">
function exportDirectoryFilesTxt {
param(
[string]$fileName
)
# Asegurarse de que el archivo tenga la extensión .txt
$fileName = "$fileName.txt"
# Crear el archivo
New-Item -Path $fileName -ItemType File -Force
# Obtener el directorio actual
$curPath = $pwd
# Definir los encabezados
$headers = "File_Name|Extension_File|Date_Last_Write_Time|File_Path|MB_Size_File|Year|Month|Day|Hour|Minute|Second"
Set-Content -Path $fileName -Value $headers | Out-Null
# Obtener los archivos y añadir su información al archivo
Get-ChildItem -File -Recurse -Path $curPath | ForEach-Object {
$iterObj = $_.LastWriteTime
$fileSizeMB = [math]::Round((Get-Item -Path $_.FullName).Length / 1MB, 2) # Redondear a 2 decimales
$fileInfo = "$($_.Name)|$($_.Extension)|$($_.LastWriteTime)|$($_.FullName)|$fileSizeMB|$($iterObj.Year)|$($iterObj.Month)|$($iterObj.Day)|$($iterObj.Hour)|$($iterObj.Minute)|$($iterObj.Second)"
Add-Content -Path $fileName -Value $fileInfo | Out-Null
}
# Mover el archivo al escritorio (asegúrate de que $desktop esté definido)
$desktop = [Environment]::GetFolderPath("Desktop")
Move-Item -Path $fileName -Destination $desktop
Write-Host "Archivo guardado en la ruta: $desktop\$fileName"
}
</code></pre>