2012-08-09 192 views
0

之間有條件的副本,我需要你的幫助。我正在尋找一個批處理文件來執行特定的操作和檢查。讓我解釋一下情況:批處理文件:兩個文件夾

我有2個文件夾(C:\ Folder1和C:\ Folder2)
我想知道是否可能有一個批處理文件,每個* .TXT文件放入Folder1將該文件的副本放置到文件夾2(比較2個文件夾並確保該文件不存在於Folder2中)。

是否有可能也有一個計數器,當另一個TXT文件放在到文件夾1只應將該文件複製到文件夾2(已加入到不是所有的以前的txt文件)作爲。

回答

3

最簡單的方法是使用robocopy。它已經只會複製已更改的文件並且有很多選項來控制它將複製的內容。它內置於Vista +中,可在Server 2003 Resource Kit中下載用於Windows XP/Server 2003。

+0

非常感謝你確實 – Meleena 2012-09-10 10:33:50

3

這將複製中不存在c:\folder2但在當前文件夾不存在c:\folder2

for %%a in (*.txt) do if not exist "c:\folder2\%%a" copy "%%a" c:\folder2 

行情的任何txt文件添加到涵蓋@dbenham識別可能存在的問題

+0

+1,但你的IF NOT EXIST目標應放在引號防範空格和特殊字符包圍。 – dbenham 2012-08-09 16:32:11

+1

@dbenham,應該會更好。我想,我花了* *的方式太多時間與8.3名 – SeanC 2012-08-09 16:34:52

1

將Sean的答案從folder1而不是當前目錄複製是很容易的。我還在路徑中添加了引號,以便像&這樣的空格和特殊字符不會破壞代碼。

@echo off 
for %%F in ("c:\folder1\*.txt") do if not exist "c:\folder2\%~nxF" copy "%%F" "c:\folder2" 

你甚至不需要批處理文件。如果將所有雙百分比更改爲單一百分比,則可以簡單地從命令行運行FOR命令。

我也很喜歡shf301建議,但也有直到你習慣了它,它可能會比較混亂這麼多ROBOCOPY選項。我相信你想要的以下內容:

robocopy /xn /xo "c:\folder1" "c:\folder2" *.txt 
+0

非常感謝你確實dbenham – Meleena 2012-09-11 14:07:25

相關問題