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-ChildItem
para obtener una lista de los archivos de la carpeta$carpeta_eliminar
. - Usamos un ciclo
foreach
para recorrer cada archivo en la lista$archivos_eliminar
. - Para cada archivo, concatenamos su nombre a la ruta de la carpeta
$carpeta_conservar
usando el cmdletJoin-Path
y lo almacenamos en la variable$ruta_archivo_conservar
. - Usamos el cmdlet
Test-Path
para verificar si el archivo también existe en la carpeta$carpeta_conservar
. - Si el archivo existe en la carpeta
$carpeta_conservar
, usamos el cmdletRemove-Item
para eliminar el archivo de la carpeta$carpeta_eliminar
.