Tengo 100000 archivos mp3 en un directorio, cada archivo contiene un nombre de archivo aleatorio y tengo otra hoja de Excel que contiene el nombre del archivo mp3 y a quién se asigna. ¿Hay alguna forma de desarrollar un script o un software de terceros que pueda ayudar a clasificar estos archivos en 3 carpetas diferentes?
Ejemplo:
- En el directorio
Archivo como: fasf4a5465.mp3, fasdf35434.mp3, vefbgwsbgg.mp3
En el excel
- Columna 1: Nombre de archivo = fasf4a5465.mp3, Columna 2 'Grupo de archivos' = Grupo1
- Columna 1: Nombre de archivo = fasdf35434.mp3, Columna 2 'Grupo de archivos' = Grupo2
- Columna 1: Nombre de archivo = vefbgwsbgg.mp3, Columna 2 'Grupo de archivos' = Grupo3
Entonces, mi salida final será de tres carpetas diferentes (Grupo 1, Grupo2, Grupo3), el 100000 se clasificará según la asignación de hoja de Excel
Como tengo muchos archivos Mp3, es difícil escucharlos y clasificarlos manualmente, por lo que necesito de alguna manera una forma de compararlos y colocarlos en una ubicación diferente.
¿Alguna solución para eso?
Respuestas:
De acuerdo, entonces es un script que desea hacer esto, luego Powershell al rescate con la lógica a continuación.
Variables de script de PowerShell explicadas
$ExcelFile =
XLS
o (sí, cualquiera de ellos funcionará) que contiene las asignaciones o los valores de columna por fila cuya primera columna es el nombre del archivo y la segunda columna es el nombre del grupo o las nuevas subcarpetas estos archivos se copiarán a.XLSX
MP3
$CSVFile =
CSV
archivo temporal convertido (en función de lo que está en Excel ($ExcelFile
)) para que el resto de la lógica haga su magia. Si este archivo ya existe, pongo la lógica para sobrescribirlo para que no se preocupe por un nombre de archivo estático.$MP3SourceDir =
MP3
directorio de origen, donde estos archivos se tomarán inicialmente según los nombres de archivo de la primera columna de la hoja de cálculo de Excel. Advertencia: DEBE mantener la\$($_.first)
lógica en esta lógica; solo conecte la otra parte de la ruta.$NewMP3Dir =
MP3
que se copiarán. Advertencia: DEBE mantener la\$($_.second)
lógica en esta lógica; solo conecte la otra parte de la ruta.Ejemplo de script de PowerShell
(Tenga en cuenta que esta es la fuente de la que obtuve la idea lógica de la conversión de xls a csv para luego leer los valores delimitados en el archivo csv para luego hacer el resto, así que también hice muchos ajustes)
(Este script esencialmente toma un archivo XLS o XLSX existente con dos valores de columna [mapeo] en la columna A y la columna B (todas las filas), y lo guarda en formato CSV en otro archivo CSV. Luego lee de ese archivo CSV y el CSV El valor de la columna A (por línea o fila) se utiliza como el nombre del archivo para copiar a otra carpeta (o subcarpeta), que es el valor CSV de la columna B (en la misma línea o fila). Cada línea o fila debe contener dos valores siendo el primero un nombre de archivo y el segundo un nombre de carpeta: estos son los valores en bucle ejecutando los comandos para copiar, etc.)
Fuente: PowerShell XLS a CSV
Lectura adicional de comandos de PowerShell
PowerShell Import-CSV
Elemento de copia de PowerShell
Nuevo artículo de PowerShell
PowerShell Remove-Item
Ruta de prueba de PowerShell
fuente