![]() |
|
|||||||
| 論壇說明 |
|
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
|
主題工具 | 顯示模式 |
|
|
#10 (permalink) | |
|
管理員
![]() ![]() |
引用:
也就是說就是 AAA\TXT內容\Make_Dirs意思嗎 語法:
@Echo off setlocal cd /d %~dp0 set Version=6.0 set titles=大量新增資料夾 %Version% 版 set TXT_File=%~n0.txt title=%titles% :選單 cls echo.%titles%:選單畫面 echo.╔═══════════╗ echo.║編碼選擇: ║ echo.║ 1.後 3 碼,請按 1 ║ echo.║ 2.後 4 碼,請按 2 ║ echo.║ 3.載入 TXT 檔,請按 3║ echo.║ ║ echo.║ 0.離開 ║ echo.╚═══════════╝ set /p select=請選擇: set /a select=%select% if %select% == 0 ( goto :End ) if %select% GTR 0 if %select% LEQ 3 ( cls & goto Function_%select% ) echo.輸入錯誤,請重新輸入 echo. pause goto :選單 :End endlocal exit :Function_1 echo. %titles%:後 3 碼 call :Input call :Run_Make_Continuous_Dir goto :End :Function_2 echo. %titles%:後 4 碼 call :Input call :Run_Make_Continuous_Dir goto :End :Function_3 echo. %titles%:載入 TXT 檔 echo. if not exist "%TXT_File%" ( echo.找不到 %TXT_File% 的錯誤,執行終止。 echo. pause goto :End ) set /p name=請輸入資料夾名稱: echo. echo. mkdir %name% for /F "eol=; tokens=1 delims=." %%V in ( %TXT_File% ) do ( call :Make_Dirs "%name%\%%V" ) goto :End :Input echo. set /p name=請輸入資料夾名稱: echo. :num-1 set /p num1=請輸入開始編號: set /a num1=%num1% if %select% == 1 ( if %num1% GTR 0 if %num1% LSS 1000 goto :num-2 ) & goto :num-1 if %select% == 2 ( if %num1% GTR 0 if %num1% LSS 10000 goto :num-2 ) & goto :num-1 :num-2 echo. set /p num2=請輸入結束編號: set /a num2=%num2% if %select% == 1 ( if %num2% GTR %num1% if %num2% LSS 1000 goto :eof ) & goto :num-2 if %select% == 2 ( if %num2% GTR %num1% if %num2% LSS 10000 goto :eof ) & goto :num-2 goto :eof :Run_Make_Continuous_Dir for /L %%V in (%num1%,1,%num2%) do ( rem 後 3 碼方法 if %select% == 1 if %%V LSS 10 ( call :Make_Dirs "%name%-00%%V" ) if %select% == 1 if %%V GEQ 10 if %%V LSS 100 ( call :Make_Dirs "%name%-0%%V" ) if %select% == 1 if %%V GEQ 100 if %%V LSS 1000 ( call :Make_Dirs "%name%-%%V" ) rem 後 4 碼方法 if %select% == 2 if %%V LSS 10 ( call :Make_Dirs "%name%-000%%V" ) if %select% == 2 if %%V GEQ 10 if %%V LSS 100 ( call :Make_Dirs "%name%-00%%V" ) if %select% == 2 if %%V GEQ 100 if %%V LSS 1000 ( call :Make_Dirs "%name%-0%%V" ) if %select% == 2 if %%V GEQ 1000 if %%V LSS 10000 ( call :Make_Dirs "%name%-%%V" ) ) goto :eof :Make_Dirs if "%~1" == "" goto :eof rem =======開 發 單 位 ======= mkdir "%~1\開發\APQP" mkdir "%~1\開發\CAD" mkdir "%~1\開發\mail紀錄" mkdir "%~1\開發\PCR" mkdir "%~1\開發\PPAP" mkdir "%~1\開發\包裝" mkdir "%~1\開發\成本" mkdir "%~1\開發\成績表" mkdir "%~1\開發\附件相片圖示" mkdir "%~1\開發\特採" mkdir "%~1\開發\異常" mkdir "%~1\開發\設計變更" rem =======品 管 單 位 ======= mkdir "%~1\品管\客訴" mkdir "%~1\品管\不良品統計" mkdir "%~1\品管\品質異常處理" mkdir "%~1\品管\圖片及CP" mkdir "%~1\品管\進料" mkdir "%~1\品管\出貨" mkdir "%~1\品管\量測資料" mkdir "%~1\品管\特採申請" mkdir "%~1\品管\產品定期稽核" mkdir "%~1\品管\CPKPPK" mkdir "%~1\品管\配合廠商" rem =======車 床 單 位 ======= mkdir "%~1\車床\SOP" mkdir "%~1\車床\機台程式" rem =======銑 床 單 位 ======= mkdir "%~1\銑床\SOP" mkdir "%~1\銑床\機台程式" rem =======後 加 工 單 位 ======= mkdir "%~1\後加工\SOP" goto :eof 1.要能依照那個意思建立資料夾,需要有正確的指令給予才行,如 mkdir %name% 以及 "%name%\%%V"。當然沒有給對,自然就沒有作用。 2.標籤的部份,可以使用中文,但是要注意系統的 CMD 本版是否有支援到,若怕不支援還是建議用英文編寫。 3.當以 3 號選項執行時,要注意一些事情,文字檔的部份可能,初期測試發現會在 \ 的位置有另外建立 資料夾, 此也加入 if "%~1" == "" goto :eof 的語法抑制。可能受不同的 CMD 版本有無作用要在注意。 4.TXT 檔名,目前設定是以 set TXT_File=%~n0.txt 控制著,需要與批次檔的主檔名相同的 .txt。 如 abc.bat 的話就要是 abc.txt 才能正常執行。 5.因為有使用 txt 檔,有加入 if not exist "%TXT_File%" 用來找尋, 有沒有 txt 檔的存在,有的話第 3 項才可以正常執行。 6.有關於 txt 檔的部份,一開始的行數是不回會跳過的。以『;』為註解符號,也就是說 『;』開頭的是註解,不會被讀入的。 7.有大幅調整一部分的語法,使用了某些如類似 java 的觀念,如單一功能的多行集合之類。具有數值的質範圍除錯的機能、 選單重回機制(這是基本選單該有的功能吧),使用了某種特殊的選單值域 goto 的方式,就不用一堆 goto :1~3。 數值輸入也有修改,有使用某種檢驗機制,就某些狀況來說有輸入的檢驗機制是對的,因此使用了數值化檢驗的方式。 如 set /a num=%num%,這個動作是把輸入的『字串的數字』變成了『數值的數字』,其實就是資料型態的轉換。 如 01 跟 1 的差別。以人的觀點來說不都是 1 嗎? 對電腦來說,卻是不一樣的,是數值的 1 還是文字的 1。在電腦內不 這兩著是完全不一樣的。數值的 1 可以作運算的,文字的 1 只有表示的作用。因此需要轉換。再進一步給 if 判斷,這樣 就比較不容易出錯了。 8."%~1" 這個目的,是為了避免 " 符號問題,在迪西的電腦測試,結果是不影響結果的。但別的電腦,可能因為不同的 CMD 或 Command.com 的版本不同而可能會不一樣。 9.在變數符號上面加上 " 符號,如 "%%1" 或是 "%num%"。是為了確保該變數傳遞的正確文字範圍,不會混到而外的 空白字符 。此外當變數內容需要有空白字符時,如 "abc 123",才會被確定是一個完整的資料,而不會被解讀成兩個資 料。 txt檔的大約內容如下 語法:
;3323-119 註解行 ;3603-226 註解行 3603;227 ; 註解行 3703-232 3703-233 3703-238 3703-239 此帖於 2013-12-15 07:01 AM 被 getter 編輯. 原因: 補充 |
|
|
|
送花文章: 37855,
|