Batch file 同时运行两个批标签(:label)
我目前正在批量制作一个有趣的游戏,除了输入,我已经完成了所有的事情。到目前为止,对于输入,我有以下代码:Batch file 同时运行两个批标签(:label),batch-file,user-input,Batch File,User Input,我目前正在批量制作一个有趣的游戏,除了输入,我已经完成了所有的事情。到目前为止,对于输入,我有以下代码: :input rem Read player input set "key=" for /f "delims=" %%K in ('xcopy /W "%~F0" "%~F0" 2^>nul') do if not defined key set "key=%%K" if "!key:~-1!" equ "!CR!" go
:input
rem Read player input
set "key="
for /f "delims=" %%K in ('xcopy /W "%~F0" "%~F0" 2^>nul') do if not defined key set "key=%%K"
if "!key:~-1!" equ "!CR!" goto endInput
if "!key:~-1!" equ "!BS!" (
if defined input set "input=%input:~0,-1%"
) else (
set "input=%input%!key:~-1!"
)
set /p "=%input%" > input.txt < nul
if not exist input.txt goto error
cls
if exist input.txt (
for /f "delims=" %%x in (input.txt) do set "inp=%%x"
set "dir=!input:~-1!"
) else goto error
goto input
:输入
rem读取播放器输入
设置“键=”
对于/f“delims=“%%K in('xcopy/W“%~F0”“%~F0”2^>nul'),如果未定义键集,则执行“键=%%K”
如果“!key:~-1!”eq“!CR!”转到endInput
如果“!key:~-1!”eq“!BS!”(
如果定义了输入集“input=%input:~0,-1%”
)否则(
设置“输入=%input%!键:~-1!”
)
设置/p“=%input%”>input.txt
我希望它在运行上面程序的其他部分时检索用户输入。(我知道,它使用外部输入文件,但速度相当快。)我认为这是不可能的;但是,您可以将其他代码放入一个单独的批处理文件中,并使用
start
命令(不带/WAIT
开关)运行它——这是一个想法…@aschipfl我不能使用它,因为它会使它慢得多。然而,我知道这是可能的。不管您认为您知道什么,单批处理不可能进行并行处理。Aschipfl基本上是正确的-唯一的选择是运行多个批处理进程,它们之间的通信由临时文件处理。这就是我如何处理用户输入的。两个进程都可以嵌入到一个脚本中,但每个进程的脚本必须单独运行,两个批处理脚本进程都可以在同一控制台窗口中运行。@dbenham我明白你的意思,但我不知道如何做到这一点。你能告诉我怎么做吗?我认为这是不可能的;但是,您可以将其他代码放入一个单独的批处理文件中,并使用start
命令(不带/WAIT
开关)运行它——这是一个想法…@aschipfl我不能使用它,因为它会使它慢得多。然而,我知道这是可能的。不管您认为您知道什么,单批处理不可能进行并行处理。Aschipfl基本上是正确的-唯一的选择是运行多个批处理进程,它们之间的通信由临时文件处理。这就是我如何处理用户输入的。两个进程都可以嵌入到一个脚本中,但每个进程的脚本必须单独运行,两个批处理脚本进程都可以在同一控制台窗口中运行。@dbenham我明白你的意思,但我不知道如何做到这一点。你能告诉我怎么做吗?