我想备份我的工作文件夹,该文件夹主要包含在以下文件夹结构中:
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
。
来源复制- 将文件和/或目录树复制到另一个文件夹。
进一步阅读
- Windows CMD 命令行的 AZ 索引- 与 Windows cmd 行相关的所有事物的绝佳参考。
答案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 文件!
就完成了。