Я хочу сделать резервную копию своей рабочей папки, которая в основном содержится в следующей структуре папок:
www
- project 1
- assets
- node_modules
- project 1
- assets
- node_modules
- project 1
- assets
- node_modules
Мне нужно скопировать все проекты, но исключить папку node_modules в каждом проекте. Есть ли простой способ сделать это массово? Так как у меня есть большое количество проектов, которые нужно просмотреть.
Работает на Windows 8.1
решение1
Мне нужно скопировать все проекты, но исключить папку node_modules
Вы можете использовать xcopy
вместе с exclude
опцией:
xcopy www backup /exclude:except.txt
except.txt
содержит список файлов каталогов, которые следует исключить.
за исключением.txt:
node_modules
/EXCLUDE:file1[+file2][+file3]...
- Каждый файл может содержать один или несколько полных или частичных путей, которые необходимо исключить.
- Если любой из них совпадает с любой частью абсолютного пути файла SOURCE, то этот файл будет исключен.
- Например, указание строки типа
\obj\
или.obj
исключит все файлы в каталогеobj
или все файлы с.obj
расширением соответственно.
Источникxcopy- Копировать файлы и/или деревья каталогов в другую папку.
дальнейшее чтение
- Индекс AZ командной строки Windows CMD- Отличный справочник по всем вопросам, связанным с командной строкой Windows.
решение2
Спасибо @DavidPostill за ответ. Это сработало на ура. Однако мне также удалось заставить работать robocopy. Для тех, кому это может помочь, команда была:
robocopy SOURCE DEST /mir /xd node_modules
Source — это папка для копирования, а dest — место назначения. И в самом конце у меня есть node_modules — папка, которую я хочу исключить.
решение3
вконтекстное менюпринадлежащий "файловый менеджер" Я добавилскрипт powershellчто позволяет мнедублируйте любую папку без node_modules:
Вот как это сделать:
Создайте свой файл скрипта 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
Создайте файл реестра: (например: 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\""
Замените C:\\Path of_your_script
на свое. Не забудьте удвоить \
на \\
.
Затем дважды щелкните по файлу .reg!
И это сделано.