【熟能生巧】系列第2期 - 倒计时脚本
问题引出
工作中习惯使用番茄时间法则,把工作时间切分为40分钟左右的一个个小块然后安排任务。这里用到了倒计时器,一般有几种形式:
- 手机倒计时
- 浏览器插件
- 桌面软件
手机倒计时在静音模式下依然会发出声响,适合在家一个人的时候使用。浏览器插件不会跨窗口弹出提示,适合浏览器使用较多的时候使用。桌面软件是个不错的选择,但是已有的一些软件设计上不够简洁,而且有些还需要付费。
由此,便想到自己写一个简单的倒计时器。
解决思路
在Windows系统下,使用Shell脚本(timer.sh)读取输入时间,并开始倒计时。当时间到时,调用Bat脚本(alert.bat)创建临时VBScript脚本(MessageBox.vbs),跳出弹窗提示,并播放音效。
timer.sh
clear# get input for minutes
echo -n "Enter countdown minutes and press [ENTER]: "
read minutes# set default value
if echo "$minutes" | egrep -q '^\-?[0-9]+$'; then echo "Input is: $minutes."
else minutes=40
fi
seconds=$minutes*60# start countdown
for ((i=$seconds;i>0;i--)); doseconds_remaining=$((i%60))minutes_remaining=$((i/60))sleep 1 &printf "Time Remaining: $minutes_remaining:$seconds_remaining \r"wait
donestart / alert.batclear
alert.bat
:: hide all output messages
@echo off
echo off:: play sound
set "file=C:\Temp\test-workspace\cmd-timer\ding.mp3"
( echo Set Sound = CreateObject("WMPlayer.OCX.7"^)echo Sound.URL = "%file%"echo Sound.Controls.playecho do while Sound.currentmedia.duration = 0echo wscript.sleep 100echo loopecho wscript.sleep (int(Sound.currentmedia.duration^)+1^)*1000
) > sound.vbs
start /min sound.vbs:: show message box
cscript C:\Temp\test-workspace\cmd-timer\MessageBox.vbs > nul:: delete the sound scipt
del sound.vbsexit
MessageBox.vbs
messageText = "Time is up!"
MsgBox messageText, vbSystemModal
如何运行
- 设置三个脚本和音效的目录,例子中是放在C:\Temp\test-workspace\cmd-timer。
- timer.sh,根据提示输入时间,default是40分钟。
转载于:https://www.cnblogs.com/maxstack/p/9634395.html
【熟能生巧】系列第2期 - 倒计时脚本相关推荐
- 运行时常量池在哪里_C++干货系列——从编译期常量谈到constexpr(一)
C++20都支持虚函数的constexpr了,我打算用三篇读文章讲清楚编译期常量和constexpr这个东西和编译期常量的关系,即为什么需要他来辅助解决这个问题.最后帮助读者在实际编码过程中能够有意识 ...
- Linux学习系列五:Shell命令脚本的基本语法
这个系列的Linux教程主要参考刘遄老师的<Linux就该这么学>.用的系统是RHEL8,如果遇见一些命令出现问题,请首先检查自己的系统是否一致,如果不一致,可网上查一下系统间某些命令之间 ...
- jquery十秒倒计时_10个很棒的jQuery倒计时脚本
jquery十秒倒计时 在大多数网站(如RapidShare,MegaUpload等)中,我们已经看到了足够的倒计时功能示例,这些示例可让您下载文件,但让您等待指定的秒数,然后才能获得下载链接. 我们 ...
- python 写脚本 预约课程_Python盘纪念币系列之三:自动预约脚本编写 03 系列总结...
前一篇遗漏了"预约兑换日期"的自动输入,这篇文章将介绍如何处理.另外,将会对"Python盘纪念币系列"做一个简单的总结. 自动输入预约兑换日期 不像文本输入框 ...
- Jmeter系列之Fiddler导出Jmeter脚本
VOL 170 29 2020-10 今天距2021年63天 这是ITester软件测试小栈第170次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上 0 ...
- RedHat系列软件管理(第二版) --脚本安装
RedHat系列软件管理 --脚本安装 一.解压缩 tar -zxvf webmin-1.700.tar.gz 二.进入相关目录 cd webmin-1.700 三.如果此时执行./configure ...
- Linux系统重装出现c0409a9f,自学IT吧论坛Linux系统运营系列视频教程#28期2016系统/服务器资源天地 - www.zxit8.com...
0001-老学员学习方法心得分享说明9 Q) B4 d x. R# l 0002-oldboy运维26期学员侯同学-13k入职8 j" I4 p+ m$ Z9 A9 d' @; f! O ...
- Appium自动化测试系列2- 写一个Python测试脚本来测试一下YY语音
我们在<Appium自动化测试系列1-Appium环境的安装和配置>里已经搭好了Appium的基本环境,这一章,我们就来真刀真枪使用一下Appium, 看看Appium是如果来实现自动化测 ...
- javplayer 使用教程_每日更新 | 立创EDA画图不求人系列视频教程@第一期目录
如果觉得文章对你有用,那就转发,让更多人知道吧 教程内容:立创EDA画图不求人系列,是电子芯原创的立创EDA绘图技巧视频教程,每一个技巧只需要不到3分钟的时间就可以完成学习.立创EDA支持window ...
最新文章
- 如何用eclipse操作MySQL数据库进行增删改查?
- 微信浏览器跳转页面加载loading效果问题
- 李彦宏被提名工程院院士,而美女教授颜宁落选,当选为美国院士
- 智能算法PSO的图例分析
- C# int与string转化
- [转载]EXT核心API详解(一)-Ext
- C语言给出任意4个数算24点,讨论24点算法。
- java 需要 不是语句,我应该避免使用Java标签语句吗?
- NVIDIA Nsight Compute,Nsight Systems, Nsight Graphics,Nsight Deep Learning Designer简介-草稿
- 翻译pdf中的英文 python_看不懂pdf中的英文?就用Python
- WinPE下修改本地系统注册表
- 3D打印Arduino 四轴飞行器
- result.append(path)与result.append(path[:])的区别
- ios 开发者证书付费三种类型区别
- 基于single-spa+vue的前端微服务项目实践
- JavaScript遍历数组和对象
- vue实现input输入模糊查询(三种方式)
- python星空画法教程_零基础也能画好的星空教程|利用午休时间画出你的星辰大海...
- 又写无关IT的东西:经济学术语
- python打开浏览器不显示浏览器页面_python+selenium 浏览器无界面模式运行
热门文章
- weblogic点击服务器没有信息,无法安装Weblogic服务器12C,jar文件甚至没有打开
- html代码格式化nodejs,使用Node编写的Sublime代码格式化工具插件(HTML/CSS/JS)
- mysql innodb row_format_INNODB物理行结构(ROW_FORMAT=COMPACT) | 学步园
- c++ windows 光标操作_电脑操作常用快捷键
- python 获取本地视频信息_python获取视频文件信息
- linux 文件读写锁,linux下的简单文件读写锁的操作
- php 增加数组下标_PHP数组排序更改下标KEY方法
- java推送到 钉钉用户_javaweb利用钉钉机器人向钉钉群推送消息(解决中文乱码)...
- 智能一代云平台(四十):Maven项目如何将lib下依赖的包打印在manifest文件中
- 网易AI孵化项目获上亿元首轮融资,主打AR+AI