复制大量文件但排除 Windows 上的某些子文件夹

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 作为要排除的文件夹。

  • 好 ol'`robocopy /mir`。非常强大的开关,可以带来很多好处,但请在使用之前了解该开关的作用。它将同步两个目录,包括删除源目录中不存在的项目。 (6认同)
  • @AdamPlocher 您的评论使我免于数据丢失。我一直在使用 robocopy 作为移动文件夹的替代品,我没有想到它会从目标文件夹中删除文件。谢天谢地,我能够恢复 4 天前的备份,谢谢。 (2认同)

Dav*_*ill 17

我需要复制所有项目但排除 node_modules 文件夹

您可以xcopyexclude选项一起使用:

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 - 将文件和/或目录树复制到另一个文件夹。


进一步阅读


A. *_*rel 9

在“文件资源管理器”的上下文菜单中,我添加了一个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 文件!

一切都完成了。

  • 我的男人你太棒了!!! (2认同)