|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# Ruta de la carpeta que contiene los archivos a eliminar $carpeta_eliminar = "C:\carpeta_eliminar" # Ruta de la carpeta que contiene los archivos a conservar $carpeta_conservar = "C:\carpeta_conservar" # Obtiene los archivos de la carpeta que se deben eliminar $archivos_eliminar = Get-ChildItem $carpeta_eliminar # Elimina los archivos de la carpeta que se deben eliminar si también existen en la carpeta a conservar foreach ($archivo in $archivos_eliminar) { $ruta_archivo_conservar = Join-Path $carpeta_conservar $archivo.Name if (Test-Path $ruta_archivo_conservar) { Remove-Item $archivo.FullName } } |
Explicación del código:
- Establecemos las rutas de la carpeta que contiene los archivos a eliminar (
$carpeta_eliminar) y la carpeta que contiene los archivos a conservar ($carpeta_conservar). - Usamos el cmdlet
Get-ChildItempara obtener una lista de los archivos de la carpeta$carpeta_eliminar. - Usamos un ciclo
foreachpara recorrer cada archivo en la lista$archivos_eliminar. - Para cada archivo, concatenamos su nombre a la ruta de la carpeta
$carpeta_conservarusando el cmdletJoin-Pathy lo almacenamos en la variable$ruta_archivo_conservar. - Usamos el cmdlet
Test-Pathpara verificar si el archivo también existe en la carpeta$carpeta_conservar. - Si el archivo existe en la carpeta
$carpeta_conservar, usamos el cmdletRemove-Itempara eliminar el archivo de la carpeta$carpeta_eliminar.

