2014-06-20 48 views
2

我希望複製位於主文件夾(T15_finished)的每個子文件夾中的擴展名爲.dyn的文件。我希望將其複製到其他位置的相應子文件夾中(T15)。我已經使用xcopy命令創建了該位置。在此,.dyn文件正在T15文件夾中的相應子文件夾中成功複製(請參閱下面的代碼)。現在,我有一個擴展名爲.dynain的文件,它位於與.dyn相同的子文件夾中。 .dynain文件也被複制,我不想要。 請參閱我創建的以下代碼。誰能告訴我什麼是錯的?如何在批處理命令中將文件從一個目錄複製到其他目錄

@echo off 

xcopy D:\Master\SPRINGBACK\CPW\T15_finished D:\Master\SPRINGBACK\FRESH_SPRINGBACK\CPW\T15 /t 
xcopy /e D:\Master\SPRINGBACK\CPW\T15_finished\*.dyn D:\Master\SPRINGBACK\FRESH_SPRINGBACK\CPW\T15 

pause 

回答

1

短文件名正在匹配以及長文件名。這就是原因。

一個解決方案是使用另一個命令來刪除這些文件:

del /s "D:\Master\SPRINGBACK\FRESH_SPRINGBACK\CPW\T15\*.dynain" 
+0

是的..我用del命令做了..但是我想問一下是否有可能..非常感謝.. – makino

2

的短文件名。如果在包含.dynain文件的文件夾中執行dir /x,則會看到爲該文件生成的8.3文件名,它將具有.dyn擴展名。

如果您知道衝突的文件的擴展名,你可以使用robocopy/xf開關指示文件(*.dynain)排除,或者您可以生成排除文件與xcopy /exclude:file使用(見xcopy /?的解釋)

或者,您可以生成文件列表中排除

(for /f "tokens=" %%a in (
    'dir /s /b "D:\Master\SPRINGBACK\CPW\T15_finished\*.dyn" ^| findstr /v /i /e /l ".dyn"' 
) do @echo(%%~nxa)>excludedFiles.txt 

xcopy /exclude:excludedFiles.txt /e D:\Master\SPRINGBACK\CPW\T15_finished\*.dyn D:\Master\SPRINGBACK\FRESH_SPRINGBACK\CPW\T15 

或(如張貼foxidrive),複製所有,然後刪除非所需的文件。

+0

好的..謝謝..我用刪除命令.. – makino

+0

+1爲Robocopy解決方案 – foxidrive

相關問題