批处理文件弹出菜单

时间:2014-07-25 09:46:30

标签: batch-file login popup

你好我想知道是否有我可以为我的聊天程序创建一个简单的弹出登录输入。这是登录部分的代码:

    @echo off

    :home

    set ch==1
    color 0b
    title Logon Screen
    cls
    echo        Chat Login
    echo ___________________________
    echo 1.Logon
    echo.
    echo 2.Create an Account
    echo.
    echo 3.Exit
    echo ___________________________
    echo.
    set /p ch=Choice Number:
    if %ch%==1 goto logon
    if %ch%==2 goto account
    if %ch%==3 goto exit
    color 0c
    echo Please enter a valid number
    ping localhost -n 2 >nul
    goto home

2 个答案:

答案 0 :(得分:0)

假设你的意思是一个输入的弹出框,有两种基本的设置方法,一个产生一个javascript弹出框,另一个产生第二个命令窗口。

对于javascript弹出框,您应该调用rhino这是Javascript的实现。一旦您下载了它,您就可以像{Python}一样从cmd调用它。您可以在单独的文件中write the javascript for a popup box然后调用它。

$ rhino file.js

第二种方法是使用start调用第二个批处理文件:

start file.bat

包含输入,例如

set /p username=Login: 

要么工作,它只取决于你想要的风格。

答案 1 :(得分:0)

试试这个:

@echo off
setlocal enableDelayedExpansion
if "%1"==":home" goto :home

  set r=r%random%
  set ch=1
  start /wait cmd /c "%~f0" :home

:ugly loop start
For /f "tokens=2,13 delims=, " %%a in (
    'tasklist /v /fo csv /fi "imagename eq cmd.exe"
    ^|findstr /v "Windows\\system32\\cmd.exe"
    ^|findstr "set /p=%r%"'
     ) do (
        set pid=%%a
        set ch=%%b
        set ch=!ch:%r%=!
        set ch=!ch:~,-2!
        )
>nul 2>&1 taskkill /pid %pid:"=%
:ugly loop end

 if %ch%==1 goto logon
 if %ch%==2 goto account
 if %ch%==3 goto exit

exit /b

:logon
echo logon &pause&exit/b
:account
echo account &pause&exit/b
:exit
echo exit &pause&exit/b

    :home    
    color 0b
    title Logon Screen
    mode con lines=15 cols=27
    cls
    echo        Chat Login
    echo ___________________________
    echo 1.Logon
    echo.
    echo 2.Create an Account
    echo.
    echo 3.Exit
    echo ___________________________
    echo.
    set /p ch=Choice Number: 
    set ch=!ch:"=!
    if not "%ch%"=="1" if not "%ch%"=="2" if not "%ch%"=="3" (
    color 0c
    echo Please enter a valid number
    ping localhost -n 2 >nul
    goto home
    ) 
    start /min cmd /k mode con lines=1 cols=14 ^&set/p %r%!ch!=

OR:
将最后一行更改为

            `exit/b !ch!`<br>

而不是:丑陋的循环标签插入此:

            `set ch=%errorlevel%`

这简单得多了!