問題一:假如現(xiàn)在c:\a文件夾下的所有文件和d:\a下的文件相同(修改日期及內(nèi)容)
c:\a下的一個文件被別人修改了或者添加了一個文件!
能否寫個bat,判斷一下c:\a文件夾下的每個文件的最后修改日期是不是在前兩天內(nèi)!如果是,則復(fù)制到d:\a下的相應(yīng)目錄(要是原來有,則覆蓋),如果不是,則不復(fù)制了.
目錄復(fù)制:
復(fù)制代碼 代碼如下:
@echo off
echo y|xcopy c:\a /d /e /r /k d:\a\
pause
復(fù)制文件
復(fù)制代碼 代碼如下:
echo y | xcopy c:\index2.htm /d /r /k c:\index.htm
echo y 就是覆蓋文件,y確定。
為特別獎勵大家給個多功能的判決原文件大小才復(fù)制的
復(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功能更強(qiáng),這里提供一個vbs版本的。大家可以到這里看下。
經(jīng)測試如果目標(biāo)文件與源文件相同則不復(fù)制。確實(shí)一定程度了減少了對硬盤的讀寫。
問題二:批處理如何判斷修改日期復(fù)制文件夾下所有文件和子文件夾
A:復(fù)制當(dāng)前目錄下所有文件及子文件夾到指定文件夾下,如果文件、文件夾同名但修改時間不同,以最新覆蓋舊的(不詢問是否覆蓋),如果修改時間相同則不復(fù)制。
例如:復(fù)制C盤Font文件夾下的所有字體(假設(shè)該文件夾下有子文件夾和其它類型的文件)到H盤的Fonts文件下,如何實(shí)現(xiàn)上述效果。
B:復(fù)制當(dāng)前目錄下所有文件及文件夾到指定文件夾下(提供文件夾名,但不知道盤符),如果文件、文件夾同名但修改時間不同,以最新覆蓋舊的(不詢問是否覆蓋),如果修改時間相同則不復(fù)制。
例如:復(fù)制C盤Font文件夾下的所有字體(假設(shè)該文件夾下有子文件夾和其它類型的文件),復(fù)制到X盤Fonts文件下(X盤符不確定),如何實(shí)現(xiàn)上述效果。
復(fù)制代碼 代碼如下:
xcopy *.ttf %1:\Fonts\*.* /S /D /Y
不要猜結(jié)果,運(yùn)行一下看結(jié)果。
Xcopy參數(shù)介紹
命令格式:XCOPY source [destination] 一堆可選的參數(shù)
參數(shù)介紹
source 指定要復(fù)制的文件。
destination 指定新文件的位置和/或名稱。
/A 只復(fù)制有存檔屬性集的文件, 但不改變屬性。
/M 只復(fù)制有存檔屬性集的文件, 并關(guān)閉存檔屬性。
/D:m-d-y 復(fù)制在指定日期或指定日期以后改變的文件。如果沒有提供日期,只復(fù)制那些源時間比目標(biāo)時間新的文件。
/EXCLUDE:file1[+file2][+file3]...
指定含有字符串的文件列表。如果有任何字符串與要被復(fù)制的文件的絕對路徑相符,那個文件將不會得到復(fù)制。
例如,指定如 \obj\ 或 .obj 的字符串會排除目錄 obj 下面的所有文件或帶有 .obj 擴(kuò)展名的文件。
/P 創(chuàng)建每個目標(biāo)文件前提示。
/S 復(fù)制目錄和子目錄,除了空的。
/E 復(fù)制目錄和子目錄,包括空的。 與 /S /E 相同??梢杂脕硇薷?/T。
/V 驗(yàn)證每個新文件。
/W 提示您在復(fù)制前按鍵。
/C 即使有錯誤,也繼續(xù)復(fù)制。
/I 如果目標(biāo)不存在,又在復(fù)制一個以上的文件, 則假定目標(biāo)一定是一個目錄。
/Q 復(fù)制時不顯示文件名。
/F 復(fù)制時顯示完整的源和目標(biāo)文件名。
/L 顯示要復(fù)制的文件。
/G 允許將沒有經(jīng)過加密的文件復(fù)制到不支持加密的目標(biāo)。
/H 也復(fù)制隱藏和系統(tǒng)文件。
/R 改寫只讀文件。
/T 創(chuàng)建目錄結(jié)構(gòu),但不復(fù)制文件。不包括空目錄或子目錄。/T /E 包括空目錄和子目錄。
/U 只復(fù)制已經(jīng)存在于目標(biāo)中的文件。
/K 復(fù)制屬性。一般的 Xcopy 會重設(shè)只讀屬性。
/N 用生成的短名復(fù)制。
/O 復(fù)制文件所有權(quán)和 ACL 信息。
/X 復(fù)制文件審核設(shè)置(隱含 /O)。
/Y 禁止提示以確認(rèn)改寫一個現(xiàn)存目標(biāo)文件。
/-Y 導(dǎo)致提示以確認(rèn)改寫一個現(xiàn)存目標(biāo)文件。
/Z 用重新啟動模式復(fù)制網(wǎng)絡(luò)文件。
您可能感興趣的文章:- BAT批處理之文件與文件夾操作代碼(附xcopy命令詳解)
- XCOPY只拷貝當(dāng)天文件的實(shí)現(xiàn)代碼
- XCOPY的高級使用:指定日期并且用EXCLUDE排除指定文件
- 利用xcopy命令實(shí)現(xiàn)本地文件復(fù)制到遠(yuǎn)程服務(wù)器的方法
- xcopy 實(shí)現(xiàn)批處理拷貝文件或文件夾
- Xcopy 復(fù)制文件和目錄,包括子目錄。
- 海量文件復(fù)制和備份的技巧(xcopy命令實(shí)現(xiàn))