Batch file 批处理-如何同时运行两个命令?

Batch file 批处理-如何同时运行两个命令?,batch-file,Batch File,我想有人问了类似的问题,但我的问题有点不同。我有以下代码: @echo off title Game set time=1 am timeout 10 /nobreak >nul & goto game set time=2 am :game 我怎样才能做这道菜 timeout 5 /nobreak >nul 及 同时工作?如果您仍然没有得到它,我希望它是这样工作的: 超时开始,您在超时结束后玩游戏,它会将时间更改为凌晨2点。我怎样才能同时做到这一点,玩游戏而不被打扰呢?

我想有人问了类似的问题,但我的问题有点不同。我有以下代码:

@echo off
title Game
set time=1 am
timeout 10 /nobreak >nul & goto game
set time=2 am
:game
我怎样才能做这道菜

timeout 5 /nobreak >nul

同时工作?如果您仍然没有得到它,我希望它是这样工作的:
超时开始,您在超时结束后玩游戏,它会将时间更改为凌晨2点。我怎样才能同时做到这一点,玩游戏而不被打扰呢?请帮忙。谢谢

不,鲍勃。”是你不明白可变时间的意义。它是一个保留变量,由系统设置,但可以由用户脚本覆盖。实际上,您可以使用任何其他变量名,但不能使用时间、日期、路径、随机数和其他一些变量名

至于你的问题,

set "mytime=1 am"
call :starttimer
:game
... whatever

:getinput
set "response="
set /p "response=%~1"
if not exist timerfinished.txt goto :eof
:: here change "mytime"
set "mytime=2 am"
:starttimer
start /min "" timer.bat 10
goto :eof
timer.bat在哪里

timer.bat文件只是删除标志文件timerfinished.txt,延迟它收到的第一个参数%1设置的时间-在主代码中设置为10,然后创建文件并退出

主代码最初使用:starttimer启动计时器,然后每当您想要提示并等待响应时,都会执行

call :getinput "Prompt for input "
响应将显示在%response%中

请注意,在该例程中最初将response设置为nothing可确保如果用户只需按Enter键,则响应为空

好的-在你输入响应之前,使用这个方案不会发生任何事情,只有这样时间才会增加,游戏才会以更新的时间继续。如果你期望超时结束时确实会发生一些事情,真的-那是不会发生的-除非你使用choice以超时选项输入你的响应。

我认为你在寻找一个游戏时间,比实时运行更快


最佳方法:使用另一个脚本在单独的最小化窗口中设置游戏时间变量,如下所示。当您需要在主脚本中访问当前游戏时间时,如果您不延迟脚本,请使用超时点是什么?不要弄乱系统变量%time%。1 am绝对不是有效值。它是有效值。我试过了,只是时间不起作用。呃-是的,你可以将%time%设置为任何值,但你不应该,因为那样,你的时间就不起作用了……哈哈,你不明白了。。。将时间更改为变量游戏时间非实时:
@echo off
del timerfinished.txt 2>nul
timeout %1 /nobreak>nul
echo.>timerfinished.txt
exit
call :getinput "Prompt for input "
@echo off
set gametime=10:00
for /f "tokens=1,2 delims=:" %%a in ("%gametime%") do (
  set hours=%%a
  set mins=%%b
)
:loop
call :increase_gametime
timeout 5 >nul
goto :loop

:increase_gametime
 set /a mins+=10
 set /a hours=hours+mins/60
 set /a mins=mins%%60
 set gametime=%hours%:%mins% 
 title %gametime%
>gametime.dat echo %hours%:%mins%