复制带有排除项的子文件夹

时间:2015-09-05 13:38:19

标签: file batch-file cmd copy

我在生产服务器上有一个混乱的情况,生产中有一个位置应该只包含3个文件夹但是由于没有关注某些进程我们有超过1000个文件夹和文件,我的目标是通过批处理清理它文件,以便没有人为错误的可能性。

所以我想将除3个文件夹以外的所有文件夹和文件复制到新位置。有人可以帮忙,因为无法输入逻辑来排除这3个文件夹。

2 个答案:

答案 0 :(得分:1)

创建一个名为xcopy /e /i /exclude:ex.txt directory_to_copy destination_name 的文件,其中包含3行,每行都是您要从副本中排除的文件夹的名称,例如:

folder1

现在,转到要复制的高级目录(例如folder2)的父级,ex.txt文件所在的位置,并键入

folder3

这将从副本中排除文件夹\100*(50+15)*(100%+100%*50%)%

注意:反斜杠par(bg = NA)对于确保不排除包含这些字符串(folder1,folder2和folder3)的其他文件夹非常重要。

答案 1 :(得分:0)

这会将tempmove.bat.txt写入与包含移动命令的批处理文件相同的文件夹中,以移动除显示的三个文件夹(testenv stageenv prodenv)之外的每个文件夹。

如果文本文件显示正确的命令,则可以在将文本文件重命名为.bat之前检查文本文件。

确保"d:\wrong folders"文件夹已存在。

@echo off
cd /d "c:\production folder"
(
for /d %%a in (*) do (
  if /i not "%%~nxa"=="testenv" if /i not "%%~nxa"=="stageenv" if /i not "%%~nxa"=="prodenv" echo move "%%~fa" "d:\wrong folders\%%~nxa"
)
)>"%~dp0\tempmove.bat.txt"
pause