windows bat批處理復制文件操作(提取同類型文件到另一個文件夾)

同學讓我?guī)兔μ幚頂?shù)據(jù),但是有365天的數(shù)據(jù)也就是365個文件夾,整體文件好幾十個G,但是每個文件夾中有用的文件只有幾個且很小,于是就準備寫一個腳本文件對其進行批處理,反正也沒學過,就搜集資料搞吧,搞好了詳細寫給大家看嘛。

同學的文件分布是這樣的:



其中有用的文件是這樣的,且每個文件夾中都類似:


明確了需求,直接把最后源碼先看,再具體一行行講:

@echo off
mkdir result
for /f  %%i in ('"dir /ad/b/on *.*"') do (  
echo  %%i
xcopy %%i\met_*.* result /s /e /d /y 
)
pause

下面是講解,對應每行

(1)@為不輸出當前行,echo off是取消顯示命令
(2)mkdir是創(chuàng)建文件夾
(3)for循環(huán)中,腳本語言使用%%variable做變量,要加兩個百分號,變量名大小寫區(qū)分,/f的話就是遍歷整體里面的內容,若不加則無法遍歷file,后面的dir是當前路徑,加參數(shù)(只列出當前用到的),也就是只按順序輸出文件夾名:

 /A          顯示具有指定屬性的文件。
  attributes   D  目錄                R  只讀文件
               H  隱藏文件            A  準備存檔的文件
               S  系統(tǒng)文件            -  表示“否”的前綴
 /B          使用空格式(沒有標題信息或摘要)。
 /O          用分類順序列出文件。
  sortorder    N  按名稱(字母順序)     S  按大小(從小到大)
               E  按擴展名(字母順序)   D  按日期/時間(從先到后)
               G  組目錄優(yōu)先           -  顛倒順序的前綴

(4)輸出一下文件夾名
(5)將文件夾中符合met_.格式的文件復制到result文件夾中,*是通配符,可以代表任何字符。后面的參數(shù)意義為:

/s 復制非空的目錄和子目錄。如果省略“/s”,則“xcopy”將在單個目錄中工作。
/e 復制所有子目錄,包括空目錄。將“/e”與“/s”和“/t”命令行選項一起使用。
/y 禁止提示確認要覆蓋已存在的目標文件。
/d [:MM-DD-YYYY] 只復制那些在指定日期或指定日期之后更改過的源文件。如果不包括“MM-DD-YYYY”值,“xcopy”會復制比現(xiàn)有“Destination”文件新的所有“Source”文件。該命令行選項使您可以更新更改過的文件。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容