目錄
1.動機
2.操作說明
2.1檔案分類的原則: 找到他們的規則性
2.2選擇一個工具 : Windows批次檔batch(.bat)
2.3程式流程
2.4製作bat檔案
2.5bat程式撰寫(依照流程逐步)
2.6完整程式碼
3.展示
動機
有些時候檔案散落在資料夾時,就需要一個方便的小工具,讓他們去到該去的地方,分類好一目了然,那這個方法非常適合有這樣需求的人,快速、簡單、好上手。
操作說明
檔案分類的原則: 找到他們的規則性
藉由檔案名稱、建立時間、或是檔案大小、檔案格式副檔名…等,各種不同的方式來做分類的依據,所以先要做的第一步是觀察檔案的各種細項,去找出一個規則,我這裡遇到的是,檔案名稱是有一個規則存在的,那我就依照檔案名稱去做分類吧~
舉例四個檔案名稱為 : AAA_1、AAA_2、B_1、B_2
這四個檔案名稱,我想要以底線前面的字串當作依據,因此分好的結果呈現兩個資料夾,分別是
- AAA 資料夾: 裡面有兩個資料 AAA_1、AAA_2
- B 資料夾: 裡面也有兩個資料 B_1、B_2
選擇一個工具 : Windows批次檔batch(.bat)
我覺得他就像一個方便的手稿,通常會將想要偷懶的重複的工作項目以bat 檔案進行,把需要的指令寫在上面,點開執行後就可以省取很多手動的功夫,加上它是指另也不需要特別安裝環境,所以很方便。
相關介紹可以參考:
這裡就以Windows批次檔batch進行接下來的分類
程式流程
- 掃描資料夾檔案名稱
- 找出目標的副檔名(這裡試著找png檔案)
- 將檔案名稱字串存入txt檔案當中
- 讀取txt檔案
- 依據txt檔案分割底線建立資料夾(這裡要建立的是AAA和B兩個資料夾)
- 移動檔案到對應的資料夾(把AAA_1和AAA_2放入AAA、把B_1和B_2放入B資料夾)
- 刪除生成的txt檔案(因為不會用到了)
製作bat檔案
我是先開一個txt文字編輯檔案,把需要的語法寫在上面,接下來再把附檔名更改為.bat即可
bat程式撰寫(依照流程逐步)
- 掃描資料夾檔案名稱
REM 列出檔案名稱,依照檔名排序---------
dir /b /on > list.txt
2. 找出目標的副檔名(這裡試著找png檔案)
REM 找出png 檔案
findstr ".png" list.txt > target.txt
3. 將檔案名稱字串存入txt檔案當中
rem 刪除副檔名-------------------------
@echo off&setlocal enabledelayedexpansion
rem 讀取target.txt所有內容
for /f "eol=* tokens=*" %%i in (target.txt) do (
rem 設定變數a為每行內容
set a=%%i
rem 如果該行有.png,則將其改為
set "a=!a:.png=!"
rem 把修改後的全部行存入$
echo !a!>>$)
rem 用$的內容替換原來a.txt內容
move $ target.txt
4. 讀取txt檔案
for /f "eol=* tokens=*" %%i in (target.txt) do (
set string=%%i
echo "%%i"
5. 依據txt檔案分割底線建立資料夾(這裡要建立的是AAA和B兩個資料夾)
for /f "tokens=1,2 delims=_" %%a in ("%%i") do (
set BEFORE_UNDERSCORE=%%a
set AFTER_UNDERSCORE=%%b
echo %%a
md %%a
6. 移動檔案到對應的資料夾(把AAA_1和AAA_2放入AAA、把B_1和B_2放入B資料夾)
rem 移動檔案到資料夾
move %%i*.* %%a
7. 刪除生成的txt檔案(因為不會用到了)
del list.txt
del target.txt
完整程式碼
展示
❤️感恩看到這裡的你,希望這篇文章有幫上你👏歡迎拍手給我鼓勵,我是甜不辣馬拉松,我們下次見