2008-05-28, 11:25 AM | |
註冊會員
|
求助 - 如何大量新增資料夾
如題,如何一個動作新增幾十個資料夾,而不是一個一個用滑鼠按右鍵--新增--資料夾 |
送花文章: 1341,
|
向 王小二 送花的會員:
|
lkmdnwden (2018-08-23)
感謝您發表一篇好文章 |
2011-08-06, 12:04 AM | #31 (permalink) | |
管理員
|
引用:
迪西新作 mk_dir v0.4 除了原本的 [系列_編號] 的方式命名外,修改成可以選擇成 [編號_系列] 此外,CMD Line 的參數模式,可以不用去在意那的,參數的位置了 ... 當然檔案又變大了,足足多了兩倍,當然這是為了彈性畫得功能才做的 ... 再來就是要利用呼叫批次檔的功能來作進階的控制 ... 1.先格式化分類檔案名稱。 2.依據先格式化好的依據,建立系列資料夾。 3.依據格式化分類檔案名稱的條件在個別丟檔案到各自的資料夾。 以上是大致的流程,不管是程式或是批次檔,大致就是這樣 ... 當然這需所寫得批次檔,格式要能夠戶搭且可以互通 ... 以下就是依照上述流程寫出來的簡化版批次檔 .... 語法:
@Echo off setlocal set name=年度 set nemb=5 call Mk_dir.cmd /s /n:%name% /t:%nemb% for /L %%a in (1,1,%nemb%) do (move "%%a%name%*.*" "%%a%name%") pause endlocal 以下是新作的批次檔 MK_DIR v0.4,複製貼上即可使用, 語法:
@Echo off setlocal set titles=大量建置系列資料夾名稱的批次檔 ver 0.4 版 TITLE=%titles% set totaldf=10 set namedf=新資料夾 set selectdf=1 set total=%totaldf% set name=%namedf% set select=%selectdf% ::CMD Line Mode set flag=0 set cmd_n=0 ::處理 ?h、help、n:、t:、s 的狀況 if "%1" == "" goto :flag_select set cmd_l=%1 set /a cmd_n+=1 if /i "%cmd_l:~0,1%" == "/" (call :cmd_Symbols) if /i "%cmd_l:~0,1%" == "-" (call :cmd_Symbols) if "%2" == "" goto :flag_select set cmd_l=%2 set /a cmd_n+=1 if /i "%cmd_l:~0,1%" == "/" (call :cmd_Symbols) if /i "%cmd_l:~0,1%" == "-" (call :cmd_Symbols) if "%3" == "" goto :flag_select set cmd_l=%3 set /a cmd_n+=1 if /i "%cmd_l:~0,1%" == "/" (call :cmd_Symbols) if /i "%cmd_l:~0,1%" == "-" (call :cmd_Symbols) if "%4" == "" goto :flag_select set cmd_l=%4 set /a cmd_n+=1 if /i "%cmd_l:~0,1%" == "/" (call :cmd_Symbols) if /i "%cmd_l:~0,1%" == "-" (call :cmd_Symbols) if "%5" == "" goto :flag_select set cmd_l=%5 set /a cmd_n+=1 if /i "%cmd_l:~0,1%" == "/" (call :cmd_Symbols) if /i "%cmd_l:~0,1%" == "-" (call :cmd_Symbols) if "%6" == "" goto :flag_select set cmd_l=%6 set /a cmd_n+=1 if /i "%cmd_l:~0,1%" == "/" (call :cmd_Symbols) if /i "%cmd_l:~0,1%" == "-" (call :cmd_Symbols) if "%7" == "" goto :flag_select set cmd_l=%7 set /a cmd_n+=1 if /i "%cmd_l:~0,1%" == "/" (call :cmd_Symbols) if /i "%cmd_l:~0,1%" == "-" (call :cmd_Symbols) if "%8" == "" goto :flag_select set cmd_l=%8 set /a cmd_n+=1 if /i "%cmd_l:~0,1%" == "/" (call :cmd_Symbols) if /i "%cmd_l:~0,1%" == "-" (call :cmd_Symbols) if "%9" == "" goto :flag_select set cmd_l=%9 set /a cmd_n+=1 if /i "%cmd_l:~0,1%" == "/" (call :cmd_Symbols) if /i "%cmd_l:~0,1%" == "-" (call :cmd_Symbols) :flag_select if %cmd_n% LEQ 3 ( if %flag% GEQ 128 goto :help if %flag% EQU 0 goto :run_f0 if %flag% EQU 1 goto :run_f1 if %flag% EQU 2 goto :run_f2 if %flag% EQU 3 goto :run_f3 if %flag% EQU 5 goto :run_f5 if %flag% EQU 6 goto :run_f6 if %flag% EQU 7 goto :run_f7 ) else ( set /a "flag|=128" goto :help ) goto :end ::CMD_Line= :run_f0 call :input_set call :input_name call :input_number call :input_exchange goto :number_format ::CMD_Line=-n: :run_f1 call :input_set call :input_number call :input_exchange goto :number_format ::CMD_Line=-t: :run_f2 call :input_set call :input_name call :input_exchange goto :number_format ::CMD_Line=-n:、-t: :run_f3 call :input_set call :input_exchange goto :number_format ::CMD_Line=-s :run_f4 call :input_set call :input_name call :input_number goto :number_format ::CMD_Line=-n:、-s :run_f5 call :input_set call :input_number goto :number_format ::CMD_Line=-t:、-s :run_f6 call :input_set call :input_name goto :number_format ::CMD_Line=-n:、-t:、-s :run_f7 goto :number_format :number_format cls set conuter=0 if %total% GEQ 1 if %total% LEQ 9 (goto F1-9) if %total% GEQ 10 if %total% LEQ 99 (goto F1-99) if %total% GEQ 100 if %total% LEQ 999 (goto F1-999) if %total% GEQ 1000 if %total% LEQ 9999 (goto F1-9999) set /a "flag|=128" goto :help :F1-9 for /L %%V in (1,1,%total%) do ( cls echo. %titles% echo. echo. if %select% EQU 1 ( echo 建立名稱為 [%name%%%V] 的資料夾 MD "%name%%%V" ) else ( echo 建立名稱為 [%%V%name%] 的資料夾 MD "%%V%name%" ) set /A conuter+=1 ) goto :EXIT :F1-99 for /L %%V in (1,1,%total%) do ( cls echo. %titles% echo. echo. if %select% EQU 1 ( echo 建立名稱為 [%name%%%V] 的資料夾 if %%V GEQ 1 if %%V LEQ 9 (>nul 2>nul MD "%name%0%%V") else (>nul 2>nul MD "%name%%%V") ) else ( echo 建立名稱為 [%%V%name%] 的資料夾 if %%V GEQ 1 if %%V LEQ 9 (>nul 2>nul MD "0%%V%name%") else (>nul 2>nul MD "%%V%name%") ) set /A conuter+=1 ) goto :EXIT :F1-999 for /L %%V in (1,1,%total%) do ( cls echo. %titles% echo. echo. if %select% EQU 1 ( echo 建立名稱為 [%name%%%V] 的資料夾 if %%V GEQ 1 if %%V LEQ 9 (>nul 2>nul MD "%name%00%%V") if %%V GEQ 10 if %%V LEQ 99 (>nul 2>nul MD "%name%0%%V") else (>nul 2>nul MD "%name%%%V") ) else ( echo 建立名稱為 [%name%%%V] 的資料夾 if %%V GEQ 1 if %%V LEQ 9 (>nul 2>nul MD "00%%V%name%") if %%V GEQ 10 if %%V LEQ 99 (>nul 2>nul MD "0%%V%name%") else (>nul 2>nul MD "%%V%name%") ) set /A conuter+=1 ) goto :EXIT :F1-9999 for /L %%V in (1,1,%total%) do ( cls echo. %titles% echo. echo. if %select% EQU 1 ( echo 建立名稱為 [%name%%%V] 的資料夾 if %%V GEQ 1 if %%V LEQ 9 (>nul 2>nul MD "%name%000%%V") if %%V GEQ 10 if %%V LEQ 99 (>nul 2>nul MD "%name%00%%V") if %%V GEQ 100 if %%V LEQ 999 (>nul 2>nul MD "%name%0%%V") else (>nul 2>nul MD "%name%%%V") ) else ( echo 建立名稱為 [%%V%name%] 的資料夾 if %%V GEQ 1 if %%V LEQ 9 (>nul 2>nul MD "000%%V%name%") if %%V GEQ 10 if %%V LEQ 99 (>nul 2>nul MD "00%%V%name%") if %%V GEQ 100 if %%V LEQ 999 (>nul 2>nul MD "0%%V%name%") else (>nul 2>nul MD "%%V%name%") ) set /A conuter+=1 ) goto :EXIT :EXIT echo. echo. echo 建立完成,共計 %conuter% 個資料夾 echo. echo. rem pause goto :end :end endlocal goto :eof :input_set cls echo. %titles% goto :eof :input_name set "input=" echo. echo. echo. 1.請輸入系列資料夾的名稱。 set /p input= (未輸入以預設值:新資料夾)= if "%input%" == "" (echo.) else (set name=%input%) goto :eof :input_number set "input=" echo. echo. echo. 2.請輸入系列資料夾的建置數量,1~9999 個。 set /p input= (未輸入以預設值:10)= if "%input%" == "" (echo.) else (set total=%input%) goto :eof :input_exchange set "input=" echo. echo. echo. 3.請選擇系列資料夾的名稱樣式。 echo. echo. 1.%name%%total% 2.%total%%name% echo. set /p input= (請選擇[1/2],預設為[%name%%total%])= if %input% GTR 2 ( call :input_set goto :input_exchange ) if "%input%" == "" (echo.) else (set select=%input%) goto :eof goto :eof :cmd_Symbols if /i "%cmd_l:~1%" == "help" set /a "flag|=128" if /i "%cmd_l:~1,1%" == "" set /a "flag|=128" if /i "%cmd_l:~1,1%" == "?" set /a "flag|=128" if /i "%cmd_l:~1%" == "h" set /a "flag|=128" if /i "%cmd_l:~1,2%" == "n:" ( set /a "flag|=1" set "name=%cmd_l:~3%" ) if /i "%cmd_l:~1,2%" == "t:" ( set /a "flag|=2" set "total=%cmd_l:~3%" ) if /i "%cmd_l:~1%" == "s" ( set /a "flag|=4" set "select=2" ) goto :eof :help cls echo ============================================================================ echo. %titles% echo. if %flag% GTR 128 ( echo. 語法錯誤! 或 數值錯誤! echo. ) echo. 語法: %0 /n:系列名稱 /t:數量 /s echo. echo. 參數 1:%0 /n:系列名稱 : 指定系列資料夾的名稱 echo. echo. 參數 2:%0 /t:數量 : 指定系列資料夾的建立數量 echo. echo. 參數 2:%0 /s : 指系列名稱與編號前後互換 echo. echo. 參數 4:%0 /? : 說明 echo. echo. echo ============================================================================ echo. echo. pause cls echo ============================================================================ echo. %titles% echo. echo. ex: %0 /n:圖片 [Enter] 產生名稱為 "圖片" 的資料夾,預設數量 %totaldf% 個 echo. echo. ex: %0 /t:15 [Enter] 產生 15 個,預設系列名稱的資料夾 echo. echo. ex: %0 /n:圖片 /t:15 [Enter] 產生名稱為 "圖片00~圖片15" 的資料夾 15 個 echo. echo. ex: %0 /n:圖片 /t:15 /s [Enter] 產生名稱為 "00圖片~15圖片" 的資料夾 15 個 echo. echo. echo. 直接執行 %0 [Enter] 時,預設創建 %totaldf% 個 以『%namedf%』為系列名稱的資料夾 echo. echo ============================================================================ echo. echo. pause goto :eof 此帖於 2011-08-06 12:20 AM 被 getter 編輯. |
|
__________________ 在「專業主討論區」中的問題解決後,要記得按一下 按鈕喔, 這是一種禮貌動作。 一樣是在「專業主討論區」中發問,不管問題解決與否,都要回應別人的回答文喔。 不然搞 [斷頭文],只看不回應,下次被別人列入黑名單就不要怪人喔。 天線寶寶說再見啦~ ... 天線寶寶說再見啦~ 迪西:「再見~ 再見~」 『 Otaku Culture Party 』 關心您 ... |
||
送花文章: 37855,
|
|
|
相似的主題 | ||||
主題 | 主題作者 | 討論區 | 回覆 | 最後發表 |
????的資料夾和??.txt、???.txt、????.txt文字檔如何開啟? | olda | 軟體應用問題討論區 | 5 | 2005-05-22 11:14 PM |
請問可以在新增資料夾時變更預設'新資料夾' | dubc | 軟體應用問題討論區 | 0 | 2004-03-18 06:13 PM |
無法新增資料夾 | fishon | 軟體應用問題討論區 | 0 | 2003-07-01 12:57 AM |
無法新增資料夾 | aeroexpress | 軟體應用問題討論區 | 4 | 2003-04-27 09:49 PM |