【问题标题】:Cmd prompt timer window popupCmd 提示计时器窗口弹出
【发布时间】:2015-02-11 02:25:16
【问题描述】:

如何使用批处理文件打开一个带有计时器的消息窗口? 我正在尝试制作一个打开命令提示符的批处理文件,在执行 2 个命令后,会弹出一条带有计时器的消息,上面写着 Self-Destruct in ... 然后播放声音,然后关闭 这是我到目前为止所拥有的

:cmd
set /p cmd=command:

%cmd%
echo.
goto  cmd2

:cmd2

set /p cmd=command:

%cmd%
echo.

【问题讨论】:

  • See this answer 的想法。没有用于从批处理脚本创建警报窗口的本机命令,但您可以从 Windows 脚本主机(VBScript 或 JScript)借用来制作弹出窗口。

标签: batch-file timer popupwindow messagewindow


【解决方案1】:

试试这个 - 它只接受一个参数 - 倒计时的秒数。应该使用 .bat 扩展名保存:

<!-- :
:: countdown.bat
@echo off

if "%~1" equ "" (
  echo seconds not passed
  exit /b 1
)

echo %*|mshta.exe "%~f0"|more



exit /b %errorlevel%
-->

<html>
<head><title>It's the final countdown</title></head>
<body>

<p>Seconds left</p>
<div id="countdown">--</div>
<button onclick='quit()'>QUIT</button>
    <script language='javascript' type="text/javascript">
        function parse() {
               var seconds=0;
               try {
                  var fso2= new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(0);
                  argline=fso2.ReadLine();
                  var args=argline.split(" ");
                  var seconds=parseInt(args[0]);
                  //var fso= new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1);
                  //fso.Write("wait for: " + milliseconds);
               } catch (err) {
                  errmessage = "cannot get the milliseconds";
                  var fso= new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1);
                  fso.Write(errmessage);
                  close();
               }
               seconds = document.getElementById('countdown').innerHTML=seconds;
               countdown();
        }

  var seconds;
  var temp;

  function countdown() {
    seconds = document.getElementById('countdown').innerHTML;
    seconds = parseInt(seconds, 10);

    if (seconds == 1) {
      temp = document.getElementById('countdown');
      close();
      //return;
    }

    seconds--;
    temp = document.getElementById('countdown');
    temp.innerHTML = seconds;
    timeoutMyOswego = setTimeout(countdown, 1000);
  } 

  //countdown();
  window.resizeTo(400,250)
  parse();

        function quit() {
            close();
        }
        //itsTheFinalCountdown(10000);
    </script>
</body>

</html>

【讨论】:

  • 这个用于 mshta.exe 的棘手 BAT/HTA 脚本确实有效。它看起来不太好(以我的衡量标准),但可以使用 HTML 进行调整。对我来说最重要的是:它实际上会暂停执行我的 BAT 文件,直到倒计时结束。我发现的大多数 GUI 计时器都不会这样做。
猜你喜欢
  • 2015-05-15
  • 2018-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-13
  • 2022-12-14
  • 1970-01-01
相关资源
最近更新 更多