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
xcopy
Sie können zusammen mit der Option verwenden exclude
:
xcopy www backup /exclude:except.txt
except.txt
enthä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.obj
ausgeschlossen .obj
.obj
Quellexkopie- Kopieren Sie Dateien und/oder Verzeichnisbäume in einen anderen Ordner.
Weiterführende Literatur
- Ein AZ-Index der Windows CMD-Befehlszeile- Ein hervorragendes Nachschlagewerk zu allem, was mit der Windows-Eingabeaufforderung zu tun hat.
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:
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_script
durch Ihrs. Vergessen Sie nicht, \
mit zu verdoppeln \\
.
Doppelklicken Sie dann auf die .reg-Datei!
Und es ist erledigt.