2013-07-31 71 views
3

在我的驱动器S:\我有一个文件夹X有多个文件和子过滤器,每个文件和子过滤器又包含自己的文件和子文件夹等。每个文件夹(在任何级别)都包含一个隐藏的文件夹,以相同的方式命名,如HID,其中包含多个文件。如何复制除隐藏文件和文件夹以外的所有文件和文件夹?

我在另一个驱动器中具有相同的结构D:\ - 具有相同结构但文件内容略有不同的相同文件夹X.

基本上我需要复制和替换从S:\ X的内容转换成D:\,但不要触摸隐藏的文件夹哈米德HID(基本上,它们是唯一的在两个独立的方式 - 即它们被命名为HID的事实和由于它们被隐藏)。

我懒得手动做这件事,不想编写一个C++应用程序来做到这一点。有没有简单的方法可以使用小型bat文件或带智能参数的直接shell命令来执行此操作?

回答

2

您可能会感兴趣xcopy命令。正如它所说的,“默认情况下,xcopy不会复制隐藏或系统文件。”它也有一个排除选项,它似乎用于忽略特殊命名的文件。

+1

我可以用它来排除特殊命名的文件夹而不是文件吗? –

+0

如果不行,robocopy可以使用/ XD folders_to_ignore –

+0

@AlexK。看起来你没有指定要直接排除的文件。而是指定一个文件名,其中包含*字符串,在文件的完整路径名中找到该字符串时,将使其被忽略。所以我可以指定一个包含\ HID \的文件名,它会忽略文件夹。 –

1

试试这个:如果它回显正确的命令,则丢失echopause

@echo off 
cd /d "s:\folder x" 
for /f "delims=" %%a in ('dir /a-d /b /s ^|find /v "\HID\" ') do (
echo copy /y "%%a" "d:%%~pnxa" 
pause 
) 
相关问题