語法:
@echo off
:ReKeyIn
set num1=bbbb
set num2=cccc
set name=AA
call :Dirs
set /p "name=請輸入資料夾名稱: "
:ReNum1
set num1=bbbb
call :Dirs
set /p "num1=請輸入開始編號(1~9999): "
set /a num1=%num1%
if %num1% EQU bbbb (
echo.& echo.開始編號輸入為 0 錯誤,請重新輸入。
echo.& Pause & goto :ReNum1 )
if %num1% LSS 1 (
echo.& echo.開始編號輸入為 0 錯誤,請重新輸入。
echo.& Pause & goto :ReNum1 )
:ReNum2
set num2=cccc
call :Dirs
set /p "num2=請輸入結束編號(1~9999): "
set /a num2=%num2%
if %num2% EQU cccc (
echo.& echo.結束編號輸入為 0 錯誤,請重新輸入。
echo.& Pause & goto :ReNum2 )
if %num2% LSS 1 (
echo.& echo.結束編號輸入為 0 錯誤,請重新輸入。
echo.& Pause & goto :ReNum2 )
if %num1% GEQ %num2% (
echo.& echo.結束編號>=開始編號的錯誤,請重新輸入。
echo.& Pause & goto :ReNum2 )
call :Dirs
set /p "YesNo=請確認資料夾名稱(正確輸入 Y,錯誤要重新輸入者輸入 N): "
if /i %YesNo% == N (goto :ReKeyIn)
if %num2% LSS 10 (goto run1)
if %num2% GEQ 10 if %num2% LSS 100 (goto run2)
if %num2% GEQ 100 if %num2% LSS 1000 (goto run3)
if %num2% GEQ 1000 if %num2% LSS 10000 (goto run4)
goto :eof
:run1
for /L %%V in (%num1%,1,%num2%) do (
cls
echo.建立資料夾: %name%-000%%V
call:Make_Dirs %name%-000%%V
)
goto :eof
:run2
for /L %%V in (%num1%,1,%num2%) do (
cls
echo.建立資料夾: %name%-00%%V
call:Make_Dirs %name%-00%%V
)
goto :eof
:run3
for /L %%V in (%num1%,1,%num2%) do (
cls
echo.建立資料夾: %name%-0%%V
call:Make_Dirs %name%-0%%V
)
goto :eof
:run4
for /L %%V in (%num1%,1,%num2%) do (
cls
echo.建立資料夾: %name%-%%V
call:Make_Dirs %name%-%%V
)
goto :eof
:Dirs
cls
echo.
if %num1% EQU bbbb if %num2% EQU cccc (echo.目標主資料名稱: "%name%-%num1%"~"%name%-%num2%")
if %num1% LSS 10 if %num2% EQU cccc (echo.目標主資料名稱: "%name%-000%num1%"~"%name%-%num2%") else (echo.目標主資料名稱: "%name%-000%num1%"~"%name%-000%num2%")
if %num1% GEQ 10 if %num1% LSS 100 if %num2% EQU cccc (echo.目標主資料名稱: "%name%-00%num1%"~"%name%-%num2%") else (echo.目標主資料名稱: "%name%-00%num1%"~"%name%-00%num2%")
if %num1% GEQ 100 if %num1% LSS 1000 if %num2% EQU cccc (echo.目標主資料名稱: "%name%-0%num1%"~"%name%-%num2%") else (echo.目標主資料名稱: "%name%-0%num1%"~"%name%-0%num2%")
if %num1% GEQ 1000 if %num1% LSS 10000 (echo.目標主資料名稱: "%name%-%num1%"~"%name%-%num2%")
echo.
goto :eof
:Make_Dirs
for /F "eol=; skip=1 tokens=1 delims=," %%A in ( MDs.txt ) do (
echo.建立子資料:"%%A"
md "%1\%%A"
)
goto :eof
字典檔需要與批次檔在一起,MDs.txt 字典檔 的內容
語法:
;MDs.txt 字典檔
開發\CAD
開發\PPAP
開發\成本
開發\成績表
開發\異常
品管\客訴
品管\不良品統計
品管\品質異常處理
品管\圖片及CP
品管\進料
品管\出貨
品管\量測資料
品管\特採申請
品管\產品定期稽核
品管\CPKPPK
品管\配合廠商
車床\SOP
車床\機台程式
銑床\SOP
銑床\機台程式
字典檔的方式主要是依照 FOR /F "eol=; skip=1 tokens=1 delims=," 的控制敘述
/F 表示開啟 FOR 的讀檔模式
" " 表示為 /F 的進階控制參數
eol=; 表示 ; 號之後的該行文字敘述為「註解」。
skip=3 表示一開始跳過的行數。
tokens=1 是對應的 FOR 的 %%V 參數的對應個數,詳細請參考 FOR /? 。
delims=, 表示 , 是用來決定單行資料區分,幾個區分斷的符號,當不輸入的話,以
預設值為空白、tab 符號為區隔。 詳細請參考 FOR /? 。