Script de Powershell que referencia un documento de texto y mueve todo lo que NO está en ese documento.
He creado un script de PowerShell que copia el nombre de cada archivo en una carpeta determinada (crea un archivo de nombre de archivo.txt, no C:\path\nombre de archivo.txt) y lo coloca todo en un documento de texto.
Ahora intento escribir un script de PowerShell que SOLO copia elementos a un directorio diferente que no están contenidos en ese documento de texto.
¿Alguna idea? Gracias a todos.
davy.ai
Un enfoque para lograr esto sería:
Get-Content
para leer el contenido del archivo de texto previamente creado en una variable de matriz, digamos$FileNames
.A continuación, use el cmdlet
Get-ChildItem
para recuperar una lista de todos los archivos en el directorio fuente del que desea hacer la copia, y filtre los archivos cuyos nombres ya están presentes en la matriz$FileNames
. Puede usar el cmdletWhere-Object
con el operador-notin
para esto.Por ejemplo, el comando podría verse algo como esto:
powershell
$SourcePath = 'C:\SourceFolder'
$DestPath = 'C:\DestinationFolder'
$FileNames = Get-Content 'C:\filename.txt'
$NewFiles = Get-ChildItem $SourcePath | Where-Object { $_.Name -notin $FileNames }
Finalmente, use el cmdlet
Copy-Item
para copiar los archivos restantes al directorio de destino.Por ejemplo, el comando podría verse algo como esto:
powershell
$NewFiles | Copy-Item -Destination $DestPath
Esto debería copiar solo los archivos que no están incluidos en el archivo de texto al directorio de destino especificado.