找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 1047|回复: 15

[发布] 批处理调用 jscript 实现计时动态秒表

[复制链接]
发表于 2026-5-26 23:36:01 | 显示全部楼层 |阅读模式
本帖最后由 redyear2026 于 2026-5-28 19:23 编辑

看过 https://bbs.wuyou.net/forum.php?mod=viewthread&tid=451726&extra= 此帖,也给一个批处调用 jscript 的脚本(winPE 应该可以通行)如下,可实现计时(屏显动态秒表),代码中对 '等候时长' 输入值未予格式检查。

test.bat
  1. 2>1/* ::
  2. @echo off &setlocal &set/p "l=等候时长(输入格式为 分:秒,例如 0:30 或 -1:45):"
  3. if "%l:~,1%"=="-" (set "l=%l:~1%" &set "m=-1") else (set "m=1")
  4. for /f "tokens=1-2 delims=::" %%a in ("%l%") do set/a "t=(60*%%a+%%b)*1000"
  5. set/p="等候时长=%t%毫秒 》回车开始计时:"
  6. cscript /nologo /e:jscript "%~f0" "%t%" %m%
  7. echo,...计时结束...&pause&exit/b */
  8. v=WSH.arguments, rt=v(0), m=v(1);
  9. for (dt=0,t0=(new Date()); dt<rt; dt=t-t0) {
  10.     t=new Date();
  11.     if (m<0) ts=rt-dt;
  12.     else ts=t.toString().match(/\d+:\d+:\d+/)+'.'+t.getMilliseconds();
  13.     WSH.stdout.write('\r'+ts); WSH.sleep(50); }
  14. WSH.stdout.write(String.fromCharCode(7)), WSH.stdout.write('\r'), WSH.quit();
复制代码
发表于 2026-5-27 00:08:36 | 显示全部楼层
感觉有点意思,谢了! 屏显动态秒表.rar (504 Bytes, 下载次数: 21)

2026-05-27_000519.png




回复

使用道具 举报

发表于 2026-5-27 02:09:43 | 显示全部楼层
回复

使用道具 举报

发表于 2026-5-27 06:41:37 | 显示全部楼层
很好,谢谢

评分

参与人数 1无忧币 +5 收起 理由
yyz2191958 + 5

查看全部评分

回复

使用道具 举报

发表于 2026-5-27 08:08:41 | 显示全部楼层
计时动态秒表
回复

使用道具 举报

发表于 2026-5-27 08:49:31 | 显示全部楼层
真不错,棒
回复

使用道具 举报

发表于 2026-5-27 09:08:43 | 显示全部楼层
收到,谢谢
回复

使用道具 举报

发表于 2026-5-27 10:34:53 | 显示全部楼层
没有接触过,学习了。
回复

使用道具 举报

发表于 2026-5-27 11:49:08 | 显示全部楼层
回复

使用道具 举报

发表于 2026-5-27 12:58:46 | 显示全部楼层
感谢分享,感觉很不错!
回复

使用道具 举报

发表于 2026-5-27 13:01:42 | 显示全部楼层

在WIN7中显示的倒计时有问题呢。
回复

使用道具 举报

发表于 2026-5-27 15:58:03 | 显示全部楼层
感谢分享了
回复

使用道具 举报

发表于 2026-5-27 16:27:13 | 显示全部楼层
2>1/* ::
@echo off &set/p "l=等候时长(输入格式为 分:秒 例如 0:30 或 5:45):"
for /f "tokens=1-2 delims=::" %%a in ("%l%") do set/a "t=(60*%%a+%%b)*1000"
set/p="...回车开始计时:"
cscript /nologo /e:jscript "%~f0" %t%
echo,&echo,...计时结束&pause&exit/b */
v=WSH.arguments, rt=v(0);
for (dt=0,t0=(new Date()); dt<rt; dt=t-t0) {
   t=new Date(), ts=t.toString().match(/\d+:\d+:\d+/)+'.'+t.getMilliseconds(),
   WSH.stdout.write('\r'+ts); WSH.sleep(50); }
WSH.quit();
回复

使用道具 举报

发表于 2026-5-28 08:38:26 | 显示全部楼层
倒计时秒表,可否正计时,手动按停
回复

使用道具 举报

 楼主| 发表于 2026-5-28 19:32:13 | 显示全部楼层
订正了一楼代码:
一。如果等候时长的输入值加了前缀 - 负号,则会动态显示倒计时
二。计时结束增加了提示音,如不喜欢,可删除代码末尾行中的 WSH.stdout.write(String.fromCharCode(7)), 即可。
回复

使用道具 举报

发表于 2026-5-30 14:57:32 | 显示全部楼层
计时动态秒表
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1|闽公网安备35020302032614号 )

GMT+8, 2026-6-7 04:18

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表