es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Un enfoque para lograr esto sería:

    1. Primero, use el cmdlet Get-Content para leer el contenido del archivo de texto previamente creado en una variable de matriz, digamos $FileNames.
    2. 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 cmdlet Where-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 }

    3. 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.

Comments are closed.