77 lines
3.6 KiB
HTML
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> |