我写了一个简单的脚本。它通过编译器运行,并且具有编译器特有的内置命令,因此除非您下载编译器或原始文件,否则无法运行它。你应该能够弄清楚我在说什么。
@echo off
set x=1
:loop
rem wait 5
cls
set /a x=%x% + 1
if %x%==20 goto loop2
rem shadeboxat 25 %x% 1 1 4
goto loop
:loop2
rem wait 5
cls
set /a x=%x% - 1
if %x%==0 goto loop
rem shadeboxat 25 %x% 1 1 4
goto loop2
继承了高级命令:
rem wait 5
:所有这一切都是等待5毫秒。
rem shadeboxat 25 %x% 1 1 4
:这会在坐标25和%x%处创建一个框。最后的1 1 4
只是关于我正在创建什么类型的盒子的额外信息。
我需要某种方法来添加“跳转到标签,如果有任何按键”。不幸的是,我不认为这是可能的。
我尝试使用choice命令,在那里我列出除了一个之外的每个常规键,并且一个键被设置为默认值,计时器为1.不幸的是1秒太多了,无法等待。
我真的怀疑这是可能的,但如果有人能证明我错了,我会很高兴听到它。
答案 0 :(得分:2)
你可以在Batch中执行此操作,但它有点狡猾。
@echo off
set x=1
start /b KeyPress.Bat
wait 5
set /p end=< %temp%\keypress.tmp
:loop
wait 5
cls
set /a x+=1
set /p end=< %temp%\keypress.tmp
if "%end%"=="1" goto end
if %x%==20 goto loop2
shadeboxat 25 %x% 1 1 4
set /p end=< %temp%\keypress.tmp
if "%end%"=="1" goto end
goto loop
:loop2
wait 5
cls
set /a x-=1
set /p end=< %temp%\keypress.tmp
if "%end%"=="1" goto end
if %x%==0 goto loop
shadeboxat 25 %x% 1 1 4
set /p end=< %temp%\keypress.tmp
if "%end%"=="1" goto end
goto loop2
:end
REM Program End Code
@echo off
echo 0 > %temp%\keypress.tmp
choice /c 1234567890qwertyuiopasdfghjklzxcvbnm /cs /n /M "Key Press To Cancel"
echo 1 > %temp%\keypress.tmp
Exit
这样,如果按下键盘上的任何字母或数字,程序将在循环之前退出并更改循环。除非你的shadeboxat
需要一段时间才能执行,否则这应该是即时的。
除此之外,这应该做你想要的。 Haven还没有测试它。
答案 1 :(得分:0)
在32位Windows中,您可以使用一个小的.com文件来检测按下的大写锁或控件等键,并在错误级别上进行分支。