2013-04-09 121 views
1

我需要一個批處理腳本和xcopy的幫助。我有一個文件夾裏面有很多不同的文件夾。例如:「測試」是主目錄,裏面我有New folder 1,New folder 2,New folder 3 ...每個星期這些文件夾必須複製到不同的服務器。批處理腳本(如果存在)xcopy

我的腳本是:

if exist "%dir%\New folder 1" (
    xcopy %dir%\New folder 1 C:\Users\user1\New folder1 /i /q /s /y /z 
    echo New folder 1 copied successfully 
) 
if exist "%dir%\New folder 2" (
    xcopy %dir%\New folder 2 C:\Users\user1\New folder2 /i /q /s /y /z 
    echo New folder 2 copied successfully 
) 

我需要更新我的劇本給我看在cmd的錯誤時,xcopy無法複製一些文件。

+1

您需要將腳本放到代碼塊中,以使其更具可讀性 – whitfin 2013-04-09 16:59:16

回答

0

我希望我正確理解這一點,讓我知道如果我錯了。

XCopy應該自己拋出錯誤,如果有關於權限的問題等。如果只是不存在某些東西,只需在您的IF語句中添加ELSE並回顯您想要的任何錯誤。

旁註:您的腳本中存在拼寫錯誤,您正在檢查兩次存在的New Folder 1,而不是New Folder 1New Folder 2。不知道這是否就是這樣,但我想我會告訴你。

0

Xcopy將返回錯誤代碼的最後一個動作,你可以用&&||操作檢查:

@echo off &setlocal 
if exist "%dir%\New folder 1" xcopy "%dir%\New folder 1" "C:\Users\user1\New folder1" /i /q /s /y /z && echo New folder 1 copied successfully || echo copied NOT successfully 
if exist "%dir%\New folder 2" xcopy "%dir%\New folder 2" "C:\Users\user1\New folder2" /i /q /s /y /z && echo New folder 2 copied successfully || echo copied NOT successfully 

注:與周圍空間(S)的路徑名始終把雙引號。