Doi*_*gey 21 windows windows-8
我想备份我的工作文件夹,它主要包含在一个文件夹结构中,例如:
www
- project 1
- assets
- node_modules
- project 1
- assets
- node_modules
- project 1
- assets
- node_modules
Run Code Online (Sandbox Code Playgroud)
我需要复制所有项目,但排除每个项目中的 node_modules 文件夹。有没有一种简单的方法可以批量执行此操作?因为我有大量的项目要完成。
在 Windows 8.1 上运行
Doi*_*gey 18
感谢@DavidPostill 的回答。它奏效了。然而,我也设法让 robocopy 工作。对于那些可能会有所帮助的人,命令是:
robocopy SOURCE DEST /mir /xd node_modules
Run Code Online (Sandbox Code Playgroud)
Source 是要复制的文件夹,dest 是目标。最后,我将 node_modules 作为要排除的文件夹。
Dav*_*ill 17
您可以xcopy与exclude选项一起使用:
xcopy www backup /exclude:except.txt
Run Code Online (Sandbox Code Playgroud)
except.txt 包含要排除的目录的文件列表。除了.txt:
node_modules
Run Code Online (Sandbox Code Playgroud)
/EXCLUDE:file1[+file2][+file3]...
- 每个文件都可以包含一个或多个要排除的完整或部分路径名。
- 当其中任何一个与 SOURCE 文件的绝对路径的任何部分匹配时,该文件将被排除。
- 例如,指定字符串 like
\obj\或.obj将分别排除目录下的obj所有文件或具有.obj扩展名的所有文件。
Source xcopy - 将文件和/或目录树复制到另一个文件夹。
在“文件资源管理器”的上下文菜单中,我添加了一个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
Run Code Online (Sandbox Code Playgroud)
创建一个注册表文件:(例如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\""
Run Code Online (Sandbox Code Playgroud)
换成C:\\Path of_your_script你的。不要忘记\加倍\\。
然后,双击 .reg 文件!
一切都完成了。