史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   程式語言討論區 (http://forum.slime.com.tw/f76.html)
-   -   批次檔(bat)的條件(if)重新命名寫法 (http://forum.slime.com.tw/thread260665.html)

a5091300 2010-07-28 10:13 PM

批次檔(bat)的條件(if)重新命名寫法
 
各位大大好

小弟有個問題一個困惑

小弟想寫個批次檔,概要如下:

假設C:\下有個a.txt

再C:\下新增一個run.bat

而run.bat的內容就是:

開啟後有兩個功能,

分別按下指定按鍵進行不同的動作:

按鍵1→將a.txt更名成b.txt

按鍵2→將b.txt更名成a.txt

而小弟目前只會寫到這裡,接下來就卡住了...

引用:

@echo off
echo 按下1、2進行不同功能

不知道有沒有大大可以幫我指點迷津呢?謝謝!!:on_79:

getter 2010-07-29 10:37 AM

需要有 1 & 2 的輸入項 ... 光 IF 是不做不出來的
需要搭被 set /p 的指令 ...

以下的批次檔僅適用於 XP 以上的版本

種類一:直接用多重 IF 直接執行
語法:

@echo off
SETLOCAL

:MENU
cls
ECHO.
ECHO  1.選擇一
ECHO.
ECHO  2.選擇二
ECHO.
ECHO.
ECHO  不執行,請輸入 0 按下[Enter] 確認離開,
ECHO  或輸入1~2並按下 [Enter] 確認選擇。
ECHO.
SET /P confirm=  請輸入(1/2)並按下 [Enter] =
IF "%confirm%" == "0" ( SET confirm= & GOTO END)
IF "%confirm%" == "1" (
        cls
        echo.
        echo 選擇一
        echo.

        )
IF "%confirm%" == "2" (
        cls
        echo.
        echo 選擇二
        echo.

        )
GOTO MENU

:NEXT
ENDLOCAL
echo.
echo.
pause
EXIT
:END



種類二:用多重 IF 篩選,在用 goto 跳躍 執行模組
語法:

@echo off
SETLOCAL

:MENU
cls
ECHO.
ECHO  1.選擇一
ECHO.
ECHO  2.選擇二
ECHO.
ECHO.
ECHO  不執行,請輸入 0 按下[Enter] 確認離開,
ECHO  或輸入1~2並按下 [Enter] 確認選擇。
ECHO.
SET /P confirm=  請輸入(1/2)並按下 [Enter] =
IF "%confirm%" == "0" ( SET confirm= & GOTO END)
IF "%confirm%" == "1" ( SET confirm= & GOTO Select_1)
IF "%confirm%" == "2" ( SET confirm= & GOTO Select_2)
GOTO MENU

:Select_1
cls
echo.
echo 選擇一
echo.

GOTO NEXT

:Select_2
cls
echo.
echo 選擇二
echo.

GOTO NEXT

:NEXT
ENDLOCAL
echo.
echo.
pause
EXIT
:END



種類三:用單一 IF 篩選選擇數字節,在用 goto 跳躍指向執行模組
迪西幾乎都是用這種架構,選單結構簡單好維護好改
語法:

@echo off
SETLOCAL

:MENU
cls
ECHO.
ECHO  1.選擇一
ECHO.
ECHO  2.選擇二
ECHO.
ECHO.
ECHO  不執行,請輸入 0 按下[Enter] 確認離開,
ECHO  或輸入1~2並按下 [Enter] 確認選擇。
ECHO.
SET /P confirm=  請輸入(0/1/2)並按下 [Enter] =
IF NOT %confirm% LEQ  2 ( GOTO MENU )
IF %confirm% == 0 ( SET confirm= & GOTO END)
GOTO Select_%confirm%

:Select_1
cls
echo.
echo 選擇一
echo.

GOTO NEXT

:Select_2
cls
echo.
echo 選擇二
echo.

GOTO NEXT

:NEXT
ENDLOCAL
echo.
echo.
pause
EXIT
:END

要用的話 ...
1.要會改 echo 提示訊息
2.要會改紅字的執行部份
3.要會增減 :Select_xx & GOTO NEXT 或 IF 判斷式

a5091300 2010-08-03 09:13 AM

謝謝大大,謝謝!:on_02:


所有時間均為台北時間。現在的時間是 11:44 AM

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

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1