除非按下某个键,否则如何在 10 分钟后启动程序?

Mat*_*Wai 3 windows command-line batch-file

start "" "C:\Program Files\program.exe"

  • 我希望程序仅在没有按下任何键的情况下在十分钟后启动。

  • 如果在十分钟内按下任何键,我希望程序不会启动。

我应该在 .bat 文件中使用哪些命令?

Dav*_*ill 6

我希望程序仅在没有按下任何键的情况下在十分钟后启动。

使用以下批处理文件:

@echo off

    call :controlTimeout 600
    if errorlevel 1 (
        echo A key was pressed
    ) else (
        echo Time Up
        start "" "C:\Program Files\program.exe"
    )

    exit /b 

:controlTimeout 
    setlocal
    start "" /belownormal /b cmd /q /d /c "timeout.exe %~1 /nobreak > nul"
    timeout.exe %~1 & tasklist | find "timeout" >nul 
    if errorlevel 1 ( set "exitCode=0" ) else ( 
        set "exitCode=1"
        taskkill /f /im timeout.exe 2>nul >nul
    )
    endlocal & exit /b %exitCode%
Run Code Online (Sandbox Code Playgroud)

信用:上述批处理文件基于 StackOverflow 回答窗口批处理脚本:通过MC ND捕获用户对“超时”命令反应


进一步阅读

  • Windows CMD 命令行的 AZ 索引- Windows cmd 行相关的所有内容的极好参考。
  • 错误级别- 几乎所有应用程序和实用程序在完成/终止时都会设置退出代码。
  • tasklist - TaskList 显示所有正在运行的应用程序和服务及其进程 ID (PID) 这可以在本地或远程计算机上运行。
  • timeout - 延迟执行几秒或几分钟,以在批处理文件中使用。