如何在不复制文件的情况下复制目录结构?


47

我有一个包含很多子文件夹和文件的文件夹。有没有一种方法可以使用cmd或powershell复制文件夹和子文件夹的目录结构,而不复制它们包含的文件?

Answers:


45

如果您也要复制空文件夹。

xcopy C:\ Folders D:\ Folders / t / e


1
正确,也/e应该使用。

1
XCOPY默认情况下在Powershell中构建,并且可以完美运行。
BenCes


18

尽管XCOPY仍然有效,但Windows Vista和更高版本包括ROBOCOPY,它具有更多功能。复制不包含文件的文件夹树(包括空文件夹)的一般语法为:

robocopy "A:\Source folder" "B:\Destination folder" /e /xf *


3

不需要复制每个文件然后删除它们的PowerShell方法:

Copy-Item -LiteralPath '.\source' -Destination 'C:\path\to\copy' -Recurse -Filter {PSIsContainer -eq $true}

或更简洁地说:

copy .\source C:\path\to\copy -r -fi PSIsContainer

唯一有趣的技巧是对PSIsContainer属性的过滤,这对于目录是正确的,但对于文件却不适用。


这也是超级快!
雷吉

1

看看47folders应用程序,它是免费的,方便的Windows工具,它通过漂亮的GUI完全满足您的需求。 在此处输入图片说明

警告:现在(2017年11月)以前的链接(http://47foldersapp.com/)指向服装广告。最后一个好的Internet存档副本在这里。仍然可以从免费软件下载站点(如站点)获得该软件。


0

可能有更好的解决方案,但我会看到这些:

  • 复制所有内容,然后使用脚本清空文件夹。

  • 编写一个脚本,如果没有扩展名,它将复制所有内容。除非您的文件夹中没有没有扩展名的文件,否则您应该这样做,因为它很好。文件夹没有扩展名。伪代码中的内容如下所示:

open_directory($ path);
while($ file = get_directory_content){
if(empty(get_file_extension($ file))){
复制文件($ file,$ destination);
}
}
close_directory;


不幸的是,我们确实有没有扩展名的文件。从用于代码存储库的.placeholders到某些特定的数据文件。
2013年

哦。好。然后,也许有一个if(是文件夹)的东西。但是,嗯。上面的xcopy事情似乎对您来说是正确的事情。除非不是这样,否则您可以在以下情况下运行脚本:1.复制所有文件夹,然后2.清空所有文件夹。或者其他的东西。但这很长。xD
阿丽亚娜

0

使用PowerShell使用。复制文件夹,然后 Remove-Item -Path "C:\test\*.*" -recurse



-1

据我所知,如果您要使用命令提示符进行操作,则有第三方软件可以提供此功能,然后复制命令就在那里。在cmd中键入 help copy,其中提供了有关如何通过cmd复制文件的详细信息。
复制后,通过cmd转到文件夹并运行命令

删除*。*
删除文件是因为文件夹没有。字符


3
可以删除文件,但是谁说文件夹名称也不能包含点/句点?
卡兰2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.