Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 在批处理循环期间捕捉击键_Batch File_Keystroke - Fatal编程技术网

Batch file 在批处理循环期间捕捉击键

Batch file 在批处理循环期间捕捉击键,batch-file,keystroke,Batch File,Keystroke,作为批处理编程的一个小培训,我最初遵循的想法是制作一台小型slotmachine。你可以给你的硬币,数字冲过去,当你按下一个按钮,数字应该停止在其当前值。如果他们都一样,砰,你赢了头彩 我现在的问题是循环过程中的击键捕获。我已经想到了一些类似于选择命令的东西,但是程序会在每个循环中停止等待键盘输入,这并不是让游戏一直等待很烦人,而是让你很无聊,因为你可以检查你是否想点击一个特定的按钮停止 另一个想法是 set /p foobar= 然后用模拟输入笔划!发送键(代码中包含所有必需的内容),忘记输

作为批处理编程的一个小培训,我最初遵循的想法是制作一台小型slotmachine。你可以给你的硬币,数字冲过去,当你按下一个按钮,数字应该停止在其当前值。如果他们都一样,砰,你赢了头彩

我现在的问题是循环过程中的击键捕获。我已经想到了一些类似于选择命令的东西,但是程序会在每个循环中停止等待键盘输入,这并不是让游戏一直等待很烦人,而是让你很无聊,因为你可以检查你是否想点击一个特定的按钮停止

另一个想法是

set /p foobar=
然后用
模拟输入笔划!发送键(代码中包含所有必需的内容),忘记输入后已发送输入

有没有办法在批处理文件中实现这一点?或者我必须想出另一个来模拟击键,或者我还遗漏了什么

编辑:清除:是否有任何命令可以在击键时更改某些内容,但在未触摸任何内容时运行

提前谢谢你的帮助

问候

geisterfurz007

@echo off
@echo off
setlocal EnableDelayedExpansion

rem Create an empty file
cd . > key.txt

rem Start a parallel process that wait for Enter key
rem and add a line to the empty file
start "" /B cmd /C "set /P = & echo line >> key.txt"

set "key="
:wait
   cls
   set "number=%random:~-4%"
   echo %number%
   echo/
   echo Press Enter key to stop the numbers...
   set /P key=< key.txt
if not defined key goto wait

echo The last number is: %number%
setlocal EnableDelayedExpansion rem创建一个空文件 cd>key.txt rem启动一个等待Enter键的并行进程 rem并在空文件中添加一行 开始“/B cmd/C”set/P=&echo line>>key.txt” 设置“键=” :等等 cls 设置“数字=%random:~-4%” 回显%number% 回音/ 按回车键停止数字。。。 set/P key=
@echo off
setlocal EnableDelayedExpansion
rem创建一个空文件
cd>key.txt
rem启动一个等待Enter键的并行进程
rem并在空文件中添加一行
开始“/B cmd/C”set/P=&echo line>>key.txt”
设置“键=”
:等等
cls
设置“数字=%random:~-4%”
回显%number%
回音/
按回车键停止数字。。。
set/P key=
choice
功能开关
/D
/C
您可能会感兴趣…哦哦哦哦。我误解了那里的帮助。谢谢你的建议@这似乎不像我最初想的那么有效。问题主要在于延迟。当我设置
/t1
时,下一个循环需要很长时间才能进行,而当我设置
/t0
时,我无法输入任何内容。当尝试将其设置为0.5或0.5时,我收到一个错误,告诉我该值无效。有什么建议吗?好吧,我想你需要借用其他语言的代码;可能是VBScript、JavaScript或PowerShell?因此不可能只在批处理文件中执行,也不可能像!发送键!在代码中包含cscript?不幸的是,我对这些都不熟悉。。。它需要借用很多代码还是很难理解?如果太多的话,我会找其他的东西来训练。
choice
功能开关
/D
/C
你可能会感兴趣的…哦哦哦哦。我误解了那里的帮助。谢谢你的建议@这似乎不像我最初想的那么有效。问题主要在于延迟。当我设置
/t1
时,下一个循环需要很长时间才能进行,而当我设置
/t0
时,我无法输入任何内容。当尝试将其设置为0.5或0.5时,我收到一个错误,告诉我该值无效。有什么建议吗?好吧,我想你需要借用其他语言的代码;可能是VBScript、JavaScript或PowerShell?因此不可能只在批处理文件中执行,也不可能像!发送键!在代码中包含cscript?不幸的是,我对这些都不熟悉。。。它需要借用很多代码还是很难理解?如果太多的话,我会找些别的东西来训练。太棒了!工作就像一种魅力;谢谢!绝对漂亮!工作就像一种魅力;谢谢!