|
|
发表于 2022-6-6 17:52:27
|
显示全部楼层
我用您的按键检测做了一个东西:- @echo off
- @Call :LoadFunctions
- :i
- cls
- echo;
- echo; 1.退出
- echo; 2.输入密码
- echo; F.控制台
- echo;
- Set/P=# 请选择:[ ]<Nul
- @Call :Choice
- If "%ascKey%"=="1" Set/P=#1]<Nul & exit
- If "%ascKey%"=="2" Set/P=#2]<Nul & goto :sr
- If "%ascKey%"=="f" Set/P=#F]<Nul & goto :y
- If 0 Equ 0 @Goto :i %= 防止因特殊字符而出错 =%
- :Choice
- %_Getch:#ascCode#=ascKey%
- @Goto :Eof
- :LoadFunctions
- Set _Getch=Set "#ascCode#=" ^& ( For /F "Usebackq Delims=" %%_ in (`XCopy /L /W "%~f0" "%~f0" 2^^^>Nul`) Do If Not Defined #ascCode# ( Set "#ascCode#=%%_") ) ^& Call Set "#ascCode#=%%#ascCode#:~-1%%"
- @Goto :Eof
- :sr
- cls
- echo;
- echo; 输入密码(.清除 [空格]确定)F调出控制台:
- Set/P=# %mm%[ ] <Nul
- @Call :Choice
- If "%ascKey%"=="f" Set/P=#F]<Nul & set "xxa= " & set "xxb=*" & set "xxc= " & set "xxd= " & goto :y
- if "%ascKey%"=="." set "mm=" & Set/P=#.]<Nul & goto :sr
- if "%ascKey%"==" " Set/P=#*]<Nul & if "%mm%"=="HOPE2021" goto :y
- Set/P=#%ascKey%]<Nul
- set mm=%mm%%ascKey%
- goto :sr
- :y
- set xxa=*
- set xxb=
- set xxc=
- set xxd=
- :yb
- cls
- echo;
- echo; 控制台
- echo; 按数字选择,[空格]确定
- echo;
- echo; [%xxa%] 1.开头
- echo; [%xxb%] 2.输入密码
- echo; [%xxc%] 3.退出
- echo; [%xxd%] 4.打开cmd
- @Call :Choice
- if "%ascKey%"==" " (
- if "%xxa%"=="*" goto :i
- if "%xxb%"=="*" goto :sr
- if "%xxc%"=="*" exit
- if "%xxd%"=="*" start "" "cmd"
- )
- if "%ascKey%"=="1" set "xxa=*" & set "xxb= " & set "xxc= " & set "xxd= "
- if "%ascKey%"=="2" set "xxa= " & set "xxb=*" & set "xxc= " & set "xxd= "
- if "%ascKey%"=="3" set "xxa= " & set "xxb= " & set "xxc=*" & set "xxd= "
- if "%ascKey%"=="4" set "xxa= " & set "xxb= " & set "xxc= " & set "xxd=*"
- goto :yb
复制代码 |
|