Excel的另類應用:如何快速將不同目錄的檔案移到同一個目錄並修改檔名?
最近接了一個工作要收集上百個學校上傳的檔案,各校上傳的檔案都在各校分配的目錄,因為伺服器不在我們學校,一方面受限於權限無法任意執行script程式,另一方面學校上傳的檔案還必須更改檔名,因為系統的網頁程式與資料庫是PHP+MySql,所以有一些學校上傳的中文檔名(含許蓋功…)會出現亂碼,要用shell script更改也不容易。
為了完成這樣的工作,我修改『資料處理過濾增益集3.2』讀取目錄的功能,讓它能夠讀取不同目錄同類型的檔案目錄資料,再將原來更改檔案名稱的功能修改成可以更改不同目錄檔案名稱,舊版『資料處理過濾增益集』只能讀取同一個資料夾中的檔案與修改同一個資料夾的檔案名稱。
執行的步驟依序如下:
首先將伺服器上傳的目錄整個下載至本機的非系統相關資料夾的目錄,因為如果在系統相關的資料夾,可能會因為權限而無法進行遞迴讀取,再到增益集工坊下載安裝『資料處理過濾增益集3.2』,啟動 Excel2010 點選[增益集]\[WORD表單統計工具]\[讀取檔案目錄資料]
叫出[讀取檔案目錄]表單,表單上有兩個主要功能,一個是[讀取檔案]、另外一個是[遞迴讀取],[指定目錄]不設定則自動預設工作目錄。
[讀取檔案]此功能一次只能讀取同一個資料夾的檔案,若只要讀取Word檔案類型則[檔案類型]可以設定為word|*.doc
使用者可以在開啟檔案的視窗中選取所要的檔案
點選[開啟舊檔],則程式會將選取之檔案的目錄資料依序寫入Excel使用中的工作表所選取的資料格
[遞迴讀取]則可以讀取指定目錄下所有子資料夾符合檔案類型之檔案,預設的[檔案類型]=*.doc|*.xls會讀取Excel與word的檔案,因為我要收集的檔案主要都是WORD格式的檔案,所以檔案類型設定為*.doc即可,而位置是在E磁碟機中的test目錄下的子目錄,所以[指定目錄]設定為E:\test。
點選[遞迴讀取]則程式會將選取之目錄資料中所有符合的檔案類型的目錄資料,依序寫入Excel使用中的工作表所選取的資料格
讀取檔案的目錄位置之後,接下來我們要把這些檔案移到同一個目錄,假設移動至E:\test這一層,並且以更改檔名,假設我要依序改成1.doc、2.doc、3.doc …,只要在已讀取之目錄資料的下一欄,建立對應的新的檔案名稱,如E:\test\1.doc (如果是有順序性之檔名,只要利用Excel自動填滿之功能即可快速建立所有新的檔案名稱)
再將原來目錄資料(範例中A欄的資料)選取
點選[增益集]\[WORD表單統計工具]\[更改檔案名稱]
程式會自動將下一欄之資料認定為新的檔名,並會出現提示視窗,若使用者按[是]則檔案名稱就進行更改。
執行完畢之後,我們檢視E:\test的目錄下除了原來的子資料夾外,還有我們更改之後的檔案。
這樣原本在子資料夾的檔案,就很容易可以分離出來。
歡迎引用,請注明來源出處!