這篇文章主要介紹了通過xcopy的/d參數(shù)復(fù)制比目標文件更新的文件,減少硬盤io,需要的朋友可以參考下
問題一:假如現(xiàn)在c:\a文件夾下的所有文件和d:\a下的文件相同(修改日期及內(nèi)容)
c:\a下的一個文件被別人修改了或者添加了一個文件!
能否寫個bat,判斷一下c:\a文件夾下的每個文件的最后修改日期是不是在前兩天內(nèi)!如果是,則復(fù)制到d:\a下的相應(yīng)目錄(要是原來有,則覆蓋),如果不是,則不復(fù)制了.
目錄復(fù)制:
代碼如下:
@echo off
echo y|xcopy c:\a /d /e /r /k d:\a\
pause
復(fù)制文件
代碼如下:
echo y | xcopy c:\index2.htm /d /r /k c:\index.htm
echo y 就是覆蓋文件,y確定。
為特別獎勵大家給個多功能的判決原文件大小才復(fù)制的
代碼如下:
@echo off
::每5分鐘復(fù)制以下首頁
for /f %%i in ('dir /b c:\index2.htm') do (
set indexdx=%%~zi
)
if %indexdx% gtr 5120 (
echo y | xcopy c:\index2.htm /d /r /k c:\index.htm
)
由于bat的局限性,不如vbs功能更強,這里提供一個vbs版本的。大家可以到這里看下。
經(jīng)測試如果目標文件與源文件相同則不復(fù)制。確實一定程度了減少了對硬盤的讀寫。
問題二:批處理如何判斷修改日期復(fù)制文件夾下所有文件和子文件夾
a:復(fù)制當(dāng)前目錄下所有文件及子文件夾到指定文件夾下,如果文件、文件夾同名但修改時間不同,以最新覆蓋舊的(不詢問是否覆蓋),如果修改時間相同則不復(fù)制。
例如:復(fù)制c盤font文件夾下的所有字體(假設(shè)該文件夾下有子文件夾和其它類型的文件)到h盤的fonts文件下,如何實現(xiàn)上述效果。
b:復(fù)制當(dāng)前目錄下所有文件及文件夾到指定文件夾下(提供文件夾名,但不知道盤符),如果文件、文件夾同名但修改時間不同,以最新覆蓋舊的(不詢問是否覆蓋),如果修改時間相同則不復(fù)制。
例如:復(fù)制c盤font文件夾下的所有字體(假設(shè)該文件夾下有子文件夾和其它類型的文件),復(fù)制到x盤fonts文件下(x盤符不確定),如何實現(xiàn)上述效果。
代碼如下:
xcopy *.ttf %1:\fonts\*.* /s /d /y
不要猜結(jié)果,運行一下看結(jié)果。
xcopy參數(shù)介紹
命令格式:xcopy source [destination] 一堆可選的參數(shù)
參數(shù)介紹
source 指定要復(fù)制的文件。
destination 指定新文件的位置和/或名稱。
/a 只復(fù)制有存檔屬性集的文件, 但不改變屬性。
/m 只復(fù)制有存檔屬性集的文件, 并關(guān)閉存檔屬性。
/d:m-d-y 復(fù)制在指定日期或指定日期以后改變的文件。如果沒有提供日期,只復(fù)制那些源時間比目標時間新的文件。
/exclude:file1[+file2][+file3]...
指定含有字符串的文件列表。如果有任何字符串與要被復(fù)制的文件的絕對路徑相符,那個文件將不會得到復(fù)制。
例如,指定如 \obj\ 或 .obj 的字符串會排除目錄 obj 下面的所有文件或帶有 .obj 擴展名的文件。
/p 創(chuàng)建每個目標文件前提示。
/s 復(fù)制目錄和子目錄,除了空的。
/e 復(fù)制目錄和子目錄,包括空的。 與 /s /e 相同??梢杂脕硇薷?/t。
/v 驗證每個新文件。
/w 提示您在復(fù)制前按鍵。
/c 即使有錯誤,也繼續(xù)復(fù)制。
/i 如果目標不存在,又在復(fù)制一個以上的文件, 則假定目標一定是一個目錄。
/q 復(fù)制時不顯示文件名。
/f 復(fù)制時顯示完整的源和目標文件名。
/l 顯示要復(fù)制的文件。
/g 允許將沒有經(jīng)過加密的文件復(fù)制到不支持加密的目標。
/h 也復(fù)制隱藏和系統(tǒng)文件。
/r 改寫只讀文件。
/t 創(chuàng)建目錄結(jié)構(gòu),但不復(fù)制文件。不包括空目錄或子目錄。/t /e 包括空目錄和子目錄。
/u 只復(fù)制已經(jīng)存在于目標中的文件。
/k 復(fù)制屬性。一般的 xcopy 會重設(shè)只讀屬性。
/n 用生成的短名復(fù)制。
/o 復(fù)制文件所有權(quán)和 acl 信息。
/x 復(fù)制文件審核設(shè)置(隱含 /o)。
/y 禁止提示以確認改寫一個現(xiàn)存目標文件。
/-y 導(dǎo)致提示以確認改寫一個現(xiàn)存目標文件。
/z 用重新啟動模式復(fù)制網(wǎng)絡(luò)文件。