1. 程式人生 > >學習寫一個能夠將文件復制、解壓到指定文件夾中的批處理文件

學習寫一個能夠將文件復制、解壓到指定文件夾中的批處理文件

bat

場景1afoldersource中有若幹文件夾和若幹壓縮文件,現在將afoldersource中的文件全部復制到afolderdist中。

afoldersource

技術分享

腳本:

@ECHO OFF

##關閉命令回顯

echo copy file

##顯示一句話

SET sourcepath=E:\afoldersource

##定義源地址

SET destpath=E:\afolderdist

##定義目標地址

rmdir %destpath%\folder /s /q

##刪除目標地址中的文件夾

/S表示除目錄本身外,還將刪除指定目錄下的所有子目錄和文件。用於刪除目錄樹

/q表示安靜模式,帶 /S 刪除目錄樹時不要求確認

rmdir %destpath%\lib /s /q

##刪除目標地址中的文件夾

rmdir %destpath%\test.war /s /q

##刪除目標地址中的文件

robocopy %sourcepath% %destpath% /s /xo /ns/nc /nfl /ndl

##將源地址內容復制到目標地址中

/S 復制子目錄,但不復制空的子目錄

/XO排除較舊的文件

/NS無大小 - 不記錄文件大小

/NFL無文件列表 - 不記錄文件名。

/NDL 無目錄列表 - 不記錄目錄名稱。

結果:

技術分享

場景2afoldersource中有若幹文件夾和若幹壓縮文件,現在將

afoldersource中的文件全部復制到afolderdist中並將壓縮文件解壓。

需要先安裝解壓軟件,我安裝的是7-Zip 安裝在C:\Program Files\7-Zip\7z.exe

腳本:

@ECHO OFF

echo copy jy to jboss

SET sourcepath=E:\afoldersource

SET destpath=E:\afolderdist

rmdir %destpath%\folder /s /q

rmdir %destpath%\lib /s /q

rmdir %destpath%\test.war /s /q

robocopy %sourcepath% %destpath% /xf *.war/s /xo /ns /nc /nfl /ndl

##不復制壓縮文件

##[/XF 文件[文件]...排除與給定名稱/路徑/通配符匹配的文件]

"C:\Program Files\7-Zip\7z.exe" x-o%destpath%\test.war\ -y %sourcepath%\test.war > extract.log

##解壓壓縮文件到目標地址

"C:\Program Files\7-Zip\7z.exe" 解壓縮軟件路徑

x:完整路徑下解壓文件

-o:設置輸出目錄

-y:所有確認選項都默認為是(即不出現確認提示)

(擴展:-aos:跳過已存在的文件)

> extract.log 生成名為extract.log的日誌文檔

結果:

技術分享


學習寫一個能夠將文件復制、解壓到指定文件夾中的批處理文件