Kopieren Sie eine große Anzahl von Dateien, schließen Sie jedoch bestimmte Unterordner unter Windows aus

Kopieren Sie eine große Anzahl von Dateien, schließen Sie jedoch bestimmte Unterordner unter Windows aus

Ich möchte meinen Arbeitsordner sichern, der hauptsächlich in einer Ordnerstruktur wie der folgenden enthalten ist:

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

Ich muss alle Projekte kopieren, aber den Ordner node_modules in jedem Projekt ausschließen. Gibt es eine einfache Möglichkeit, dies in großen Mengen zu tun? Da ich eine große Anzahl von Projekten durchgehen muss.

Ausführung unter Windows 8.1

Antwort1

Ich muss alle Projekte kopieren, aber den Ordner node_modules ausschließen

xcopySie können zusammen mit der Option verwenden exclude:

xcopy www backup /exclude:except.txt
  • except.txtenthält die Liste der Dateien oder Verzeichnisse, die ausgeschlossen werden sollen.

außer.txt:

node_modules

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

  • Die Dateien können jeweils einen oder mehrere vollständige oder teilweise Pfadnamen enthalten, die ausgeschlossen werden sollen.
  • Wenn einer dieser Werte mit einem Teil des absoluten Pfads einer Quelldatei übereinstimmt, wird diese Datei ausgeschlossen.
  • Wenn Sie beispielsweise eine Zeichenfolge wie \obj\oder angeben, werden alle Dateien unterhalb des Verzeichnisses bzw. alle Dateien mit der Erweiterung .objausgeschlossen .obj.obj

Quellexkopie- Kopieren Sie Dateien und/oder Verzeichnisbäume in einen anderen Ordner.


Weiterführende Literatur

Antwort2

Danke an @DavidPostill für seine Antwort. Es hat wunderbar funktioniert. Ich habe es allerdings auch geschafft, Robocopy zum Laufen zu bringen. Für diejenigen, denen es helfen könnte, lautete der Befehl:

robocopy SOURCE DEST /mir /xd node_modules

Quelle ist der zu kopierende Ordner und Ziel das Ziel. Und ganz am Ende habe ich node_modules als den Ordner, den ich ausschließen möchte.

Antwort3

ImKontextmenüdes "Dateimanager" Ich habe einPowershell-Skriptdas erlaubt mir,duplizieren Sie alle Ordner ohne node_modules:

Bildbeschreibung hier eingeben

So geht's:

Erstellen Sie Ihre PowerShell-Skriptdatei 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

Erstellen Sie eine Registrierungsdatei: (Beispiel: 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\""

Ersetzen Sie es C:\\Path of_your_scriptdurch Ihrs. Vergessen Sie nicht, \mit zu verdoppeln \\.

Doppelklicken Sie dann auf die .reg-Datei!

Und es ist erledigt.

verwandte Informationen