2011-09-20 36 views

回答

1
SET if_it_exists_here=C:\folderB 
SET then_delete_it_there=C:\folderA 
CD "%if_it_exists_here%" 
FOR %%A IN (*.*) DO (
IF EXIST "%then_delete_it_there%\%%~nxA" DEL /Q /F %then_delete_it_there%\%%~nxA 
) 
+0

這是一個有趣的選擇。這種方法有什麼特別的優勢嗎? – JosephStyons

+0

這只是在刪除文件之前查找文件,而不是假設文件存在並將其刪除。所以用'2>'重定向應該是乾淨的。我總是測試重定向'2> file> file2',以確保代碼沒有任何問題,並讓它返回「找不到文件」給STDERR令人討厭= /。只是nitpicky。 – Mechaflash

+0

偉大的觀點,我想我會用這個而不是我自己的。我懷疑它也會在大量文件中表現更好。 – JosephStyons

1

回答我的問題:

set if_it_exists_here=C:\folderB 
set then_delete_it_there=C:\folderA 
cd "%if_it_exists_here%" 
FOR /F "tokens=*" %%G IN ('dir *.* /b /a:-d') DO del "%then_delete_it_there%\%%G" 
+0

我想它的文件總是存在於folderA和folderB? – Mechaflash

+0

不,不一定。如果沒有重疊,那麼腳本不會刪除任何內容。 – JosephStyons

0

大廈由Mechaflash答案,這裏是與UNC路徑工作的版本。

SET if_it_exists_here=\\server1\some\folder 
SET then_delete_it_there=\\server2\some\folder 
CD "%if_it_exists_here%" 
FOR %%A IN ("%if_it_exists_here%\*.*") DO (
IF EXIST "%then_delete_it_there%\%%~nxA" DEL /Q /F %then_delete_it_there%\%%~nxA 
) 
相關問題