Copie una gran cantidad de archivos pero excluya ciertas subcarpetas en Windows

Copie una gran cantidad de archivos pero excluya ciertas subcarpetas en Windows

Quiero hacer una copia de seguridad de mi carpeta de trabajo, que se encuentra principalmente dentro de una estructura de carpetas como:

www
    - project 1
        - assets
        - node_modules
    - project 1
        - assets
        - node_modules
    - project 1
        - assets
        - node_modules

Necesito copiar todos los proyectos pero excluir la carpeta node_modules dentro de cada proyecto. ¿Existe una manera fácil de hacer esto de forma masiva? Ya que tengo una gran cantidad de proyectos por realizar.

Ejecutándose en Windows 8.1

Respuesta1

Necesito copiar todos los proyectos pero excluir la carpeta node_modules

Puedes utilizar xcopyjunto con la excludeopción:

xcopy www backup /exclude:except.txt
  • except.txtcontiene la lista de archivos de directorios que se excluirán.

excepto.txt:

node_modules

/EXCLUDE:file1[+file2][+file3]...

  • Cada uno de los archivos puede contener una o más rutas de acceso completas o parciales que se excluirán.
  • Cuando alguno de estos coincida con cualquier parte de la ruta absoluta de un archivo FUENTE, ese archivo será excluido.
  • Por ejemplo, especificar una cadena como \obj\o .objexcluirá todos los archivos debajo del directorio objo todos los archivos con la .objextensión respectivamente.

Fuentexcopiar- Copie archivos y/o árboles de directorios a otra carpeta.


Otras lecturas

Respuesta2

Gracias a @DavidPostill por su respuesta. Funcionó de maravilla. Sin embargo, también logré que la robocopia funcionara. Para aquellos a quienes pudiera ayudar, el comando era:

robocopy SOURCE DEST /mir /xd node_modules

El origen es la carpeta a copiar y el destino es el destino. Y justo al final tengo node_modules como la carpeta que quiero excluir.

Respuesta3

En elmenú contextualdel "explorador de archivos" Agregué unsecuencia de comandos de powershelleso me permiteduplicar cualquier carpeta sin node_modules:

ingrese la descripción de la imagen aquí

He aquí cómo hacerlo:

Cree su archivo de secuencia de comandos de PowerShell script.ps1:

$Source=$args[0]
$Position = $Source.lastindexofany("\")
$Destination = $Source.substring(0, $Position + 1)
$FolderName = $Source.substring($Position + 1)
$Destination = "$($Destination)$($FolderName)-DUPLICATE_WITHOUT_NODE_MODULES"
robocopy $Source $Destination /mir /xd node_modules

Cree un archivo de registro: (ej Add_Script_To_ContextMenu.reg:)

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\DupFolderWithoutNodeModules]
@="Duplicate folder without node_modules"

[HKEY_CLASSES_ROOT\Directory\shell\DupFolderWithoutNodeModules\command]
@="C:\\\\Windows\\\\system32\\\\WindowsPowerShell\\\\v1.0\\\\powershell.exe -File \"C:\\Path of_your_script\\script.ps1\" \"%L\""

Reemplace C:\\Path of_your_scriptpor el suyo. No olvides doblar \por \\.

Luego, haga doble clic en el archivo .reg.

Y ya está.

información relacionada