¡Hola, chicos!
En este artículo tan simple, compartiré con ustedes un script que desarrollé para satisfacer una necesidad muy común en la vida diaria de quienes crean cursos y capacitaciones, que es crear una hoja de cálculo o un archivo CSV, que contenga la lista de videos, tamaño y duración de cada video, para mantener la estructura de carpetas para poder calcular la duración total de los videos y también, para poder agregar la duración total por directorio y por archivo, para que esté disponible en una plataforma de cursos, por ejemplo.

Para este ejemplo, utilicé los archivos de mi curso. Base de datos en Azure, que ya están separados por directorios separados para cada módulo:

Pero observe que hay 2 carpetas dentro del directorio del curso, llamadas “General” y “Marketing”, que son videos promocionales y no quiero considerarlos al configurar y poner a disposición el cronograma de capacitación, ni al calcular la duración total de los videos. Es decir, Quiero ignorar estos 2 directorios de mi listado.

Además, al final del listado, en lugar de mostrarlo en la pantalla de la consola, Quiero exportar esta lista a un archivo CSV, donde puedo abrirlo en un editor de texto o Microsoft Excel.

Cómo ejecutar scripts de Powershell

Al igual que cualquier otro script de Powershell, para ejecutarlo, simplemente abra el símbolo del sistema escribiendo el comando "cmd" en la barra de búsqueda:

Otra forma de abrir el símbolo del sistema es presionar las teclas Win + R, para abrir la ventana Ejecutar, escriba el comando “cmd” y presione la tecla “Enter”:

En la pantalla de la consola que se abrió, escriba el comando "powershell" para ingresar a la consola Powershell:

Ahora simplemente escriba los comandos de Powershell que desee.

Ejecutando el script de Powershell para generar el listado

Para ejecutar nuestro script de Powershell para generar el listado deseado, copie el script a continuación y péguelo en la pantalla de Powershell:

$Directory = "C:\Cursos\Azure\"
$Shell = New-Object -ComObject Shell.Application

Get-ChildItem -Path $Directory -Recurse -Force -Include *.mp4 | where fullname -notmatch 'Marketing' | where fullname -notmatch 'Geral' | 
ForEach {
    
    $Folder = $Shell.Namespace($_.DirectoryName)
    $File = $Folder.ParseName($_.Name)
    $Duration = $Folder.GetDetailsOf($File, 27)
    
    [PSCustomObject]@{
        Directory = $_.Directory -Replace ([Regex]::Escape("\Videos")), "" -Replace ([Regex]::Escape($Directory)), ""
        Name = $_.Name -Replace ".mp4", ""
        Size = "$([int]($_.length / 1mb)) MB"
        Duration = $Duration
    }
    
} | Export-Csv -Path "C:\Cursos\Azure\temp.csv" -NoTypeInformation -Encoding UTF8 -Delimiter ";"

Si no sabe cómo hacer esto, copie el script anterior y haga clic derecho en la consola para pegar (se pegará directamente, sin mostrar el menú). Ahora presione la tecla “Enter” para ejecutar:

Si vio esta pantalla arriba, es porque el script se ejecutó sin errores.

Al abrir el archivo temp.csv generado, veremos la lista completa de vídeos, directorio, tamaño y duración. Puedo seleccionar, por ejemplo, videos solo del directorio “Módulo 1 – Azure SQL” y ahora analizar la cantidad de videos, la duración promedio y la duración total de estos videos, como se muestra en el siguiente ejemplo:

Entonces, ¿te gustó este consejo?
¡Un abrazo grande y hasta la próxima!