@echo off
title Bat 指令介紹與 example (Pre-Alpha 搶先使用版)
::初始設定
cls
color 0f
::授權
:License
CLS
echo == 授權條款 ==
echo 感謝你使用本 "Bat 指令介紹與 example"
ping 0.0.0.0 -n 3 >nul
echo 由 byStarTW 製作,
echo 不可翻製、修改程式任何內容
echo NOTE: 目前僅以下號碼功能有效: 0,5,8
ping 0.0.0.0 -n 4 >nul
set /p license_choose=請問你同意以上條款?(Y/N):
if "%license_choose%"=="Y" goto Start
if "%license_choose%"=="N" (
echo.
echo 若你不接受此條款,將無法使用本軟體
echo 五秒後自動離開
ping 0.0.0.0 -n 6 >nul
exit
)
goto License
::開始
:Start
goto Page1
::頁數1
:Page1
set page=1
cls
echo 1. 使用 echo、title 指令
echo 2. 使用 start、call 指令
echo 3. BAT 語法格式說明
echo 4. 使用 CLS、COLOR 指令
echo 5. 下一頁 (P.2)
echo 目前你正在 P.1
goto choosescreen
::頁數2
:Page2
set page=2
cls
echo 6. 使用 set 指令 (基礎)
echo 7. set 搭配 if 指令 (基礎)
echo 8. 實戰練習 (1-8 else 5)
echo 9. 使用 goto 與使用標記點
echo 0. 回到上一頁
goto choosescreen
::選擇介面
:ChooseScreen
set choosekey=
set /p choosekey=請輸入你要的號碼 (ex. 1):
if "%choosekey%"=="0" goto Page1
if "%choosekey%"=="1" goto echo_title_readme
if "%choosekey%"=="2" goto start_call_readme
if "%choosekey%"=="3" goto bat_format_readme
if "%choosekey%"=="4" goto cls_color_readme
if "%choosekey%"=="5" goto Page2
if "%choosekey%"=="6" goto try_set_readme
if "%choosekey%"=="7" goto set_if_readme
if "%choosekey%"=="8" goto Test_one
if "%choosekey%"=="9" goto goto_readme
if "%page%"=="1" goto Page1
if "%page%"=="2" goto Page2
goto ChooseScreen
::echo、title 的說明
:echo_title_readme
CLS
echo 未來會建構完成。
pause
exit
::start、call 的說明
:start_call_readme
CLS
echo 未來會建構完成。
pause
exit
::bat 排版介紹
:bat_format_readme
CLS
echo 未來會建構完成。
pause
exit
::Cls、Color 的說明
:cls_color_readme
CLS
echo 未來會建構完成。
pause
exit
::使用 set 指令
:try_set_readme
CLS
echo 未來會建構完成。
pause
exit
::Set 與 If 搭配
:set_if_readme
CLS
echo 未來會建構完成。
pause
exit
::Goto 的說明
:goto_readme
CLS
echo 未來會建構完成。
pause
exit
::自我測驗_01
:Test_one
CLS
echo 即將開始實戰練習!
echo 3...
ping 0.0.0.0 -n 3 >nul
echo 2...
ping 0.0.0.0 -n 3 >nul
echo 1...
ping 0.0.0.0 -n 3 >nul
echo Go!
ping 0.0.0.0 -n 2 >nul
goto test_one_1
::自我測驗_01_第一題
:test_one_1
cls
set testonechoose=
echo 1. 如何讓標題列顯示 "Hello world!"?
echo A. title Hello world!
echo B. echo Hello world!
echo C. title title(Hello world!)
set /p testonechoose=請選擇:
if "%testonechoose%"=="A" goto test_one_1_ok
::自我測驗_01_第一題_錯誤
echo 你錯了!答案是 "A"
echo 解析:
echo echo 是在命令提示字元顯示 Hello world! 這個字樣
echo C 是在標題列顯示 "title (Hello world!)"
pause
goto test_one_2
::自我測驗_01_第一題_正確
:test_one_1_ok
echo 你答對了!
echo 解析:
echo echo 是在命令提示字元顯示 Hello world! 這個字樣
echo C 是在標題列顯示 "title (Hello world!)"
pause
goto test_one_2
::自我測驗_01_第二題
:test_one_2
cls
set testonechoose=
echo 2. 請判別以下程式碼,並答出正確的解釋方法
echo @echo off
echo title Hello world!
echo echo Hello world!
echo pause
echo exit
echo.
echo A. 標題列顯示 Hello world,不會顯示任何文字。
echo B. 標題列顯示 title Hello world!,顯示 echo Hello world!
echo C. 標題列顯示 Hello world,顯示 Hello world!
echo D. 會跳出 "Windows 找不到這個程式",然後無法正常執行。
set /p testonechoose=答案是?
if "%testonechoose%"=="C" goto test_one_2_ok
::自我測驗_01_第二題_錯誤
echo 你答錯了...答案是 "C"
pause
goto test_one_3
::自我測驗_01_第二題_正確
:test_one_2_ok
echo 你答對了!
pause
goto test_one_3
::自我測驗_01_第三題
:test_one_3
cls
set testonechoose=
echo set 與 if 之用法,下列何者正確?
echo 注意: % 改成 ' ex %12 會變成 '12
echo.
echo (A)
echo set /p crazy=Hello world?(Y/N)?
echo if "crazy=' ~01" =! )helloworld!)y == bye
echo (B)
echo set /p crazy2=test
echo if "'crazy%"=="666" echo 無竄改
echo (C)
echo set count=%windir%
echo if "%count%"=="%windir%" echo Path Enabled.
echo (D)
echo set test=helloworld
echo if "%test%"="helloworld" exit
set /p testonechoose=請選擇:
if "%testonechoose%"=="C" goto test_one_3_ok
::自我測驗_01_第三題_錯誤
echo 你錯了 =(
echo 解析:
echo A. if "crazy=% ~01" =! )helloworld!)y == bye 應改成 if "%crazy%"=="Y" exit
echo B. set /p crazy2=test 應改成 set /p crazy=test 或 if "%crazy%"=="666" echo 無竄改 改成 if "%crazy2%"=="666".
echo D. if "%test%"="helloworld" exit 的 = 應是兩個 (ex. if "%test%"=="helloworld" exit)
pause
goto test_one_4