2013-07-31 69 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 
) 
相關問題