2013-06-30 152 views
1

我有多個.bat文件,用於具有不同參數的相同程序。這可能嗎?從其他BAT文件運行BAT文件?

這是我現在所擁有的:

@echo off 
Cls 
color 0A 
echo title 
PAUSE 
:Main 
color 0A 
Cls 
echo 1 : name1.bat 
echo 2 : name2.bat 
echo 3 : name3.bat 
set /p file=Enter the number of the file you want to run: 
Cls 

會是這樣的工作?輸入號碼後,如何運行bat文件需要做些什麼?

回答

0

是的,你可以有條件循環。您可以測試變量值並按以下方式執行。您也可以使用call聲明。

IF "%file%" EQU "1" ( 
     name1.bat 
    ) 
    IF "%file%" EQU "2" ( 
     name2.bat 
    ) 
    IF "%file%" EQU "3" ( 
     name3.bat 
    ) 
+0

謝謝 - 你工作。 – Dylan

+1

您必須「調用」其他批處理文件,否則在調用的批處理終止後控制將不會返回到調用批處理文件。 –

1

有幾種方法可以解決這個問題。最短的(最簡單的)是:1-確保用戶只能通過choice命令輸入有效的輸入值,以及2-命名具有固定格式名稱的所有批處理文件(如您示例中的名稱)並調用相應的直。

@echo off 
Cls 
color 0A 
echo title 
PAUSE 
:Main 
color 0A 
Cls 
echo 1 : name1.bat 
echo 2 : name2.bat 
echo 3 : name3.bat 
choice /C:123 /M:"Enter the number of the file you want to run: " 
call name%errorlevel%.bat 
0

當前.bat文件在C盤運行,並且要運行放在d .bat文件:目錄,然後在第一個蝙蝠寫。

D: 
cd "D:/folder/folder2/" 
call batFile.bat 
0

您好我假設你要啓動的用戶選擇 這裏的批處理文件是代碼:

@echo off 
    Cls 
    color 0A 
    echo title 
    PAUSE 
:Main 
    color 0A 
    Cls 
    echo 1 : name1.bat 
    echo 2 : name2.bat 
    echo 3 : name3.bat 
    set /p file=Enter the number of the file you want to run 
    if %file%==1 start name1.bat 
    if %file%==2 start name2.bat 
    if %file%==3 start name3.bat 
    goto end 
:end 
    echo File is now running! 
    pause 
0

您也可以使用goto選項:

@echo off 
Cls 
color 0A 
echo title 
PAUSE 
:Main 
color 0A 
Cls 
echo 1 : name1.bat 
echo 2 : name2.bat 
echo 3 : name3.bat 
set /p file=Enter the number of the file you want to run: 
Cls 
GOTO %file% 

:1 
start name1.bat 
exit 

:2 
start name2.bat 
exit 

:3 
start name3.bat 
exit