史萊姆論壇

返回   史萊姆論壇 > 專業主討論區 > 一般電腦疑難討論區
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


發文 回覆
 
主題工具 顯示模式
舊 2013-10-31, 04:59 PM   #1 (permalink)
管理員
 
getter 的頭像
榮譽勳章
UID - 6433
在線等級: 級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時
註冊日期: 2002-12-08
住址: 天線星球
文章: 8157
精華: 0
現金: 19955 金幣
資產: 765391 金幣
預設 用 for /F 的字典檔方式

語法:
@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 /? 。

此帖於 2013-12-10 11:34 AM 被 getter 編輯.
__________________
在「專業主討論區」中的問題解決後,要記得按一下 http://forum.slime.com.tw/images/stamps/is_solved.gif 按鈕喔,
這是一種禮貌動作。

一樣是在「專業主討論區」中發問,不管問題解決與否,都要回應別人的回答文喔。
不然搞 [斷頭文],只看不回應,下次被別人列入黑名單就不要怪人喔。

天線寶寶說再見啦~ ... 天線寶寶說再見啦~

迪西:「再見~ 再見~」

Otaku Culture Party 關心您 ...
getter 目前離線  
送花文章: 37855, 收花文章: 6441 篇, 收花: 26052 次
+20 金幣
回覆時引用此帖
有 3 位會員向 getter 送花:
a471 (2013-11-01),grc45 (2013-11-01),丹楓 (2013-10-31)
感謝您發表一篇好文章
舊 2013-12-09, 03:09 PM   #2 (permalink)
註冊會員
榮譽勳章

勳章總數
UID - 365055
在線等級: 級別:0 | 在線時長:3小時 | 升級還需:2小時
註冊日期: 2013-10-28
文章: 5
精華: 0
現金: 9 金幣
資產: 9 金幣
預設

感謝getter指導
小弟目前還有一個疑問
選項3的第一層資料夾要帶入TXT檔建立
TXT檔內容是不連續號碼 例如

3323-119
3603-226
3603-227
3603-308
3603-309
3604-641
3604-647
3703-010
3703-011
3703-232
3703-233
3703-238
3703-239

然後第二層之後的資料夾 帶入:Make_Dirs的資料夾名稱
該如何改寫呢?? 再請指教 謝謝


語法:
@Echo off
cd /d %~dp0 

@Echo off

TITLE=%titles%

Echo  ╔═════════════════╗
Echo  ║  編碼選擇:                      ║ 
Echo  ║ 1.後3碼 按1                      ║ 
Echo  ║ 2.後4碼 案2                      ║ 
Echo  ║ 3.載入TXT檔                      ║
Echo  ╙═════════════════╜
set /p x=請選擇→
if /I "%x%"=="1" goto :1
if /I "%x%"=="2" goto :2
if /I "%x%"=="3" goto :3
cd /d %~dp0 
echo 輸入錯誤
exit

:1
set num1=
set num2=
set name=
cls
echo. %titles%
echo.
echo 請輸入資料夾名稱:
set /p name=
echo.
echo.
echo 請輸入開始編號(1~999):
set /p num1=
echo 請輸入結束編號(1~999):
set /p num2=
if %%V LSS 10    (goto run5)

:run5
for /L %%V in (%num1%,1,%num2%) do (
IF %%V LSS 10 (call:Make_Dirs %name%-00%%V)
IF %%V GEQ 10 IF %%V LEQ 99 (call:Make_Dirs %name%-0%%V)
IF %%V GEQ 100 IF %%V LEQ 999 (call:Make_Dirs %name%-%%V)
)
cls
goto :eof

:2
set num1=
set num2=
set name=
cls
echo. %titles%
echo.
echo 請輸入資料夾名稱:
set /p name=
echo.
echo.
echo 請輸入開始編號(1~9999):
set /p num1=
echo 請輸入結束編號(1~9999):
set /p num2=
if %%V LSS 10    (goto run1) 
if %%V GEQ 10     LEQ 99    (goto run2) 
if %%V GEQ 100    LEQ 999   (goto run3)
if %%V GEQ 1000   LEQ 9999  (goto run4)
cls

:run1
for /L %%V in (%num1%,1,%num2%) do (
IF %%V LSS 10 (call:Make_Dirs %name%-000%%V)
)
:run2
for /L %%V in (%num1%,1,%num2%) do (
IF %%V GEQ 10 IF %%V LEQ 99 (call:Make_Dirs %name%-00%%V)
)
:run3
for /L %%V in (%num1%,1,%num2%) do (
IF %%V GEQ 100 IF %%V LEQ 999 (call:Make_Dirs %name%-0%%V)
)

:run4
for /L %%V in (%num1%,1,%num2%) do (
IF %%V GEQ 1000 IF %%V LEQ 9999 (call:Make_Dirs %name%-%%V)
)
cls

:3
set name=
cls
echo. %titles%
echo.
echo 請輸入資料夾名稱:
set /p name=
echo.
echo.

for /F  %%V in ( MDs.txt ) do (
echo.建立子資料:"%%V" (call:Make_Dirs %name%)
 )
cls

:Make_Dirs
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

此帖於 2013-12-09 10:49 PM 被 victor624 編輯.
victor624 目前離線  
送花文章: 0, 收花文章: 2 篇, 收花: 3 次
回覆時引用此帖
舊 2013-12-09, 06:49 PM   #3 (permalink)
管理員
 
getter 的頭像
榮譽勳章
UID - 6433
在線等級: 級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時
註冊日期: 2002-12-08
住址: 天線星球
文章: 8157
精華: 0
現金: 19955 金幣
資產: 765391 金幣
預設

引用:
作者: victor624 查看文章
感謝getter指導
小弟目前還有一個疑問
選項3的第一層資料夾要帶入TXT檔建立
TXT檔內容是不連續號碼 例如

3323-119
3603-226
3603-227
3603-308
3603-309
3604-641
3604-647
3703-010
3703-011
3703-232
3703-233
3703-238
3703-239

然後第二層之後的資料夾 帶入:Make_Dirs的資料夾名稱
該如何改寫呢?? 再請指教 謝謝

語法:
...
...
...
for /F  %%V in ( MDs.txt ) do (
echo.建立子資料:"%%V" (call:Make_Dirs %name%)
 )
cls

...
...
...
1.txt 的內容是因為原本第一層資料夾名稱的號碼可能是不連號的關係嗎?
2.再來是用 for /f 的 參數沒有給當然會不行 ... 先參考一下我先前貼的那個
字典檔的法 ...

剩下的等我的屁屁(條狀物要大出來了 ... )好點再來詳細弄
getter 目前離線  
送花文章: 37855, 收花文章: 6441 篇, 收花: 26052 次
回覆時引用此帖
向 getter 送花的會員:
a471 (2013-12-09)
感謝您發表一篇好文章
舊 2013-12-09, 10:37 PM   #4 (permalink)
註冊會員
榮譽勳章

勳章總數
UID - 365055
在線等級: 級別:0 | 在線時長:3小時 | 升級還需:2小時
註冊日期: 2013-10-28
文章: 5
精華: 0
現金: 9 金幣
資產: 9 金幣
預設

引用:
作者: getter 查看文章
1.txt 的內容是因為原本第一層資料夾名稱的號碼可能是不連號的關係嗎?
2.再來是用 for /f 的 參數沒有給當然會不行 ... 先參考一下我先前貼的那個
字典檔的法 ...

剩下的等我的屁屁(條狀物要大出來了 ... )好點再來詳細弄

回 getter
我詳細說明這次新增的功能
首先選第3項 會要求輸入資料夾名稱(第一層) 假如是AAA
之後她會帶入TXT檔內部的資料夾名稱(第二層)
之後AAA底下會產生TXT的編號 TXT底下會帶出:Make_Dirs所有子資料夾

因為這些編號不連貫 所以必須透過TXT檔帶入
選項1-2功能不變 主要是給編號連續的時候使用的
請指教 謝謝!!

TXT內容
語法:
3323-119
3603-226
3603-227
3603-308
3603-309
3604-641
3604-647
3703-010
3703-011
3703-232
3703-233
3703-238
3703-239


0402-333
0402-354
0402-478
0402-909
0402-950
0402-951
0402-974
0402-984
0402-945
0403-039
0403-079
0404-170
0404-179
0404-199
0404-215
0404-218
0404-203
0404-207
0404-218
0404-219
0404-242
0404-247
0405-052
0405-062
0405-205
0405-219
0405-245
0405-263
0405-272
0405-319
0405-320
0405-340
0405-368
0405-379
0405-381
0405-383
0405-388
0405-440
0405-446
0409-066
0410-196
0410-200
0413-136
0413-145
0423-042
0423-359
0423-359
0423-393
0423-395
0423-411
0423-450
0436-355
0436-659
0441-893
0443-061
0443-063
0444-263
0444-264
0470-915
0470-918
0492-029
0492-075
0492-077
0492-078
0492-085
0492-090
0492-110
0492-111


0502-042
0502-164
0502-258	
0502-273
0502-321
0502-348
0502-421
0502-423
0502-517
0502-521
0502-522
0502-766
0502-797
0502-828
0502-833
0502-857
0502-967(1402-467)
0502-969(1402-485)
0502-970(1402-487)
0502-973(1402-499)
0502-976+8
0502-999
0503-040_041
0503-311(0403-155)
0503-321(0403-151)
0503-456+7
0503-462
0503-464
0503-483
0503-546+7
0503-628+9
0503-644
0503-748+9
0504-610
0504-651
0504-656+7
0504-676
0504-678
0504-746+9
0504-757
0505-414
0505-773+4
0505-776+7
0541-842
0544-010+011
0570-345


0605-713
0605-858
0605-906
0605-907
0605-908(1619-124)
0605-927
0605-928
0605-932
0605-943
0605-969
0607-711
0607-712
0607-716+717
0607-806_7
0608-610
0613-011
0613-012
0619-907
0630-273
0645-606
0645-632
0648-787
0675-030


0702-995
0708-577
0745-368
目前改寫後第二層之後資料夾可建立 但是第一層
手動輸入資料夾名稱 出不來 !!!

語法:
@Echo off
cd /d %~dp0 

@Echo off
set titles=大量新增資料夾 V6.0版
echo 大量新增資料夾 64.0版

TITLE=%titles%

Echo  ╔═════════════════╗
Echo  ║  編碼選擇:                      ║ 
Echo  ║ 1.後3碼 按1                      ║ 
Echo  ║ 2.後4碼 案2                      ║ 
Echo  ║ 3.載入TXT檔                      ║
Echo  ╙═════════════════╜
set /p x=請選擇→
if /I "%x%"=="1" goto :1
if /I "%x%"=="2" goto :2
if /I "%x%"=="3" goto :3
cd /d %~dp0 
echo 輸入錯誤
exit

:1
set num1=
set num2=
set name=
cls
echo. %titles%
echo.
echo 請輸入資料夾名稱:
set /p name=
echo.
echo.
echo 請輸入開始編號(1~999):
set /p num1=
echo 請輸入結束編號(1~999):
set /p num2=
if %%V LSS 10    (goto run5)

:run5
for /L %%V in (%num1%,1,%num2%) do (
IF %%V LSS 10 (call:Make_Dirs %name%-00%%V)
IF %%V GEQ 10 IF %%V LEQ 99 (call:Make_Dirs %name%-0%%V)
IF %%V GEQ 100 IF %%V LEQ 999 (call:Make_Dirs %name%-%%V)
)
cls
goto :eof

:2
set num1=
set num2=
set name=
cls
echo. %titles%
echo.
echo 請輸入資料夾名稱:
set /p name=
echo.
echo.
echo 請輸入開始編號(1~9999):
set /p num1=
echo 請輸入結束編號(1~9999):
set /p num2=
if %%V LSS 10    (goto run1) 
if %%V GEQ 10     LEQ 99    (goto run2) 
if %%V GEQ 100    LEQ 999   (goto run3)
if %%V GEQ 1000   LEQ 9999  (goto run4)
cls

:run1
for /L %%V in (%num1%,1,%num2%) do (
IF %%V LSS 10 (call:Make_Dirs %name%-000%%V)
)
:run2
for /L %%V in (%num1%,1,%num2%) do (
IF %%V GEQ 10 IF %%V LEQ 99 (call:Make_Dirs %name%-00%%V)
)
:run3
for /L %%V in (%num1%,1,%num2%) do (
IF %%V GEQ 100 IF %%V LEQ 999 (call:Make_Dirs %name%-0%%V)
)

:run4
for /L %%V in (%num1%,1,%num2%) do (
IF %%V GEQ 1000 IF %%V LEQ 9999 (call:Make_Dirs %name%-%%V)
)
cls

:3
cd /d %~dp0 
set name=
cls
echo. %titles%
echo.
echo 請輸入資料夾名稱:
set /p name=
echo.
echo.

for /F "eol=; skip=1 tokens=1 delims=," %%V in ( MDs.txt ) do (
call:Make_Dirs %%V
 )
cls

:Make_Dirs
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

此帖於 2013-12-09 10:50 PM 被 victor624 編輯.
victor624 目前離線  
送花文章: 0, 收花文章: 2 篇, 收花: 3 次
回覆時引用此帖
向 victor624 送花的會員:
a471 (2013-12-10)
感謝您發表一篇好文章
舊 2013-12-10, 03:20 PM   #5 (permalink)
管理員
 
getter 的頭像
榮譽勳章
UID - 6433
在線等級: 級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時
註冊日期: 2002-12-08
住址: 天線星球
文章: 8157
精華: 0
現金: 19955 金幣
資產: 765391 金幣
預設

引用:
作者: victor624 查看文章
回 getter
我詳細說明這次新增的功能
首先選第3項 會要求輸入資料夾名稱(第一層) 假如是AAA
之後她會帶入TXT檔內部的資料夾名稱(第二層)
之後AAA底下會產生TXT的編號 TXT底下會帶出:Make_Dirs所有子資料夾

因為這些編號不連貫 所以必須透過TXT檔帶入
選項1-2功能不變 主要是給編號連續的時候使用的
請指教 謝謝!!

TXT內容

也就是說就是 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 編輯. 原因: 補充
getter 目前離線  
送花文章: 37855, 收花文章: 6441 篇, 收花: 26052 次
回覆時引用此帖
有 2 位會員向 getter 送花:
a471 (2013-12-10),羅迪 (2013-12-19)
感謝您發表一篇好文章
舊 2013-12-11, 04:25 PM   #6 (permalink)
管理員
 
getter 的頭像
榮譽勳章
UID - 6433
在線等級: 級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時級別:96 | 在線時長:9733小時 | 升級還需:64小時
註冊日期: 2002-12-08
住址: 天線星球
文章: 8157
精華: 0
現金: 19955 金幣
資產: 765391 金幣
預設

有無幫助也要記得回貼文告知 ... 這是禮貌

辛苦貼文的人 ... 怎麼知道 ... 到底有無幫助 ...

不然當作斷頭文處裡吧 ...
getter 目前離線  
送花文章: 37855, 收花文章: 6441 篇, 收花: 26052 次
回覆時引用此帖
有 3 位會員向 getter 送花:
a471 (2013-12-11),grc45 (2013-12-13),羅迪 (2013-12-19)
感謝您發表一篇好文章
發文 回覆



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 01:16 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1