bat 时间 的运算与提取
比如在系统中date这个环境变量的值为
-- 星期六
年------%date:~,% 表示从左向右指针向右偏0位,然后从指针偏移到的位置开始提取4位字符,结果是2011
月------%date:~,% 表示指针从左向右偏移5位,然后从偏移处开始提取2位字符,结果是07
日------%date:~8,2% 8 31
%date:~% 表示指针从左向右偏移5位,然后提取所有的值
时间-----%date:~-% 表示指针反方向偏移,从最右端开始,偏移5位,然后从指针处提取左边的所有数值。
md F:\backup\%date:~,%%date:~,%%time:~,%%time:~,%
结果为:md F:\201107231855
echo.%date:~% 日期date
echo.%time:~% 时间time
echo. %date:~,% 年
echo.%date:~,% 月
echo.%date:~,% 日
echo.%time:~,% 小时
echo.%time:~,% 分
echo.%time:~,% 秒
echo.%time:~,% 里秒 pause
set /a 指定等号右边的字符串为被评估的数字表达式。
就是表示计算
如
@echo off
set/a xz=123+456
echo %xz%
pause>nul
可以输出123+456的结果
时间运算
@echo off
:: 判断一个脚本执行完毕所需要的时间
:: 先取开始时间,然后在即将结束的时候取结束时间
:: 两个时间都分别提取小时、分和秒数
:: 分别对小时数、分钟数和秒数进行操作
:: 还要对08和09这两个数进行操作
:: 注意:set /a num=的格式只能处理两位数中是否高位为0,如果是多位数
:: 要去高位的所有0的话,要用循环测试高位是否为0或者在高位添1然后
:: 再减去1000之类的数字的方法
:: code by JM --~ CMD@XP 感谢pengfei测试
set time_begin=%time:~,-%
echo 脚本开始运行时间是 %time_begin%
:: 小于10的小时数前有空格,要做去空格操作
for /f "tokens=1,2,3 delims=:" %%i in ("%time_begin%") do (
set /a hour_b=%%i
set /a munite_b=%%j
set /a second_b=%%k
)
pause
set time_end=%time:~,-%
for /f "tokens=1,2,3 delims=:" %%i in ("%time_end%") do (
set /a hour_e=%%i
set /a munite_e=%%j
set /a second_e=%%k
)
call :time_lapse
echo 脚本结束运行的时间是 %time_end%
echo 共花费了 %hour_% 小时 %munite_% 分 %second_% 秒
pause>nul
goto :eof
:time_lapse
:: 一定要按照 秒=>分钟=>小时 的顺序操作
if %second_e% lss %second_b% (
set /a munite_e=%munite_e%-
set /a second_e=%second_e%+
)
set /a second_=%second_e%-%second_b%
if %munite_e% lss %munite_b% (
set /a hour_e=%hour_e%-
set /a munite_e=%munite_e%+
)
set /a munite_=%munite_e%-%munite_b%
if %hour_e% lss %hour_b% (
set /a hour_e=%hour_e%+
)
set /a hour_=%hour_e%-%hour_b%
goto :eof
另外一种方法(Code by Pengfei):
@echo off
::::25.45
:: 运行程序的时间统计
set _time_start=%time%
set /a hour_start=%_time_start:~,%
set /a minute_start=%_time_start:~,%-
set /a second_start=%_time_start:~,%-
echo %time%
echo %hour_start%
echo %minute_start%
echo %second_start%
pause
:: 结束程序的时间统计
set _time_end=%time%
set /a hour_end=%_time_end:~,%
set /a minute_end=%_time_end:~,%-
set /a second_end=%_time_end:~,%-
echo %time%
echo %hour_end%
echo %minute_end%
echo %second_end%
pause
:: 计算秒数
if %second_end% lss %second_start% (
set /a second_end=%second_end%+
set /a minute_end=%minute_end%-
)
set /a second=%second_end%-%second_start%
:: 计算分钟数
if %minute_end% lss %minute_start% (
set /a minute_end=%minute_end%+
set /a hour_end=%hour_end%-
)
set /a minute=%minute_end%-%minute_start%
:: 计算小时数
if %hour_end% lss %hour_start% (
set /a hour_end=%hour_end%+
)
set /a hour=%hour_end%-%hour_start%
echo %hour%:%minute%:%second%
pause
窗口隐藏代码 前3行
if "%1"=="h" goto Begin
start mshta vbscript:createobject("wscript.shell").run("""%~0"" h",)(window.close)&&exit
:Begin
ping 192.168.1.1 -t
bat 时间 的运算与提取的更多相关文章
- 使用Calender类获取系统时间和时间和运算
		
使用Calender类获取系统时间和时间和运算: @Test public void testCal(){ //使用Calender对象获取时间,并对时间进行计算: Calendar instance ...
 - PL/SQL 日期时间类型函数及运算
		
内部存储格式: 世纪.年.月.日.小时.分钟.秒 默认格式是:DD-MON-RR. SYSDATE 返回当前的系统时间. SELECT SYSDATE FROM DUAL: 对日期的数学运算 SELE ...
 - mysql日期时间函数2
		
win7可以设定每周从哪一天开始,win2003等不能方便的修改.有的是周日开始,有的是周一开始.而工作中有的时候每周是从周六开始算的,有些数据需要按周统计,那么那种方式比较好呢? 通过下面的研究 ...
 - R语言学习 第十一篇:日期和时间
		
R语言的基础包中提供了三种基本类型用于处理日期和时间,Date用于处理日期,它不包括时间和时区信息:POSIXct/POSIXlt用于处理日期和时间,其中包括了日期.时间和时区信息.R内部在存储日期和 ...
 - Python3-Cookbook总结 - 第三章:数字日期和时间
		
第三章:数字日期和时间 在Python中执行整数和浮点数的数学运算时很简单的. 尽管如此,如果你需要执行分数.数组或者是日期和时间的运算的话,就得做更多的工作了. 本章集中讨论的就是这些主题. Con ...
 - 2017-2018-1 20155306 《信息安全系统设计基础》嵌入式C语言———提取设置时分秒
		
2017-2018-1 20155306 <信息安全系统设计基础>嵌入式C语言---提取设置时分秒 要求:根据下图,完成对时分秒的设置和提取. 示例及思路分析: 思路分析:以分钟为例,根据 ...
 - java JDK8 学习笔记——第13章 时间与日期
		
第十三章 时间与日期 13.1 认识时间与日期 13.1.1 时间的度量 1.格林威治标准时间GMT 格林威治标准时间的正午是太阳抵达天空最高点之时.现在已经不作为标准时间使用. 2.世界时UT世界时 ...
 - paper 76:膨胀、腐蚀、开、闭运算——数字图像处理中的形态学
		
膨胀.腐蚀.开.闭运算是数学形态学最基本的变换.本文主要针对二值图像的形态学膨胀:把二值图像各1像素连接成分的边界扩大一层(填充边缘或0像素内部的孔):腐蚀:把二值图像各1像素连接成分的边界点去掉从而 ...
 - date命令--修改linux系统时间
		
在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便. 1.命令格式: date [参数 ...
 
随机推荐
- C从控制台(stdin)输入带空格的字符串到字符数组中
			
用scanf("%s",array); 的话遇到空格就停止接收后面的字符了,那怎么才能接收带空格的字符串呢? 1.用 gets() ,它可以接收带空格的字符串, 直到回车才结束输入 ...
 - ALLOWED_HOSTS = ['*']
			
https://docs.djangoproject.com/en/1.10/ref/settings/#std:setting-ALLOWED_HOSTS https://stackoverflow ...
 - String  StringBuffer   StringBuilder  对比
			
1.StringBuffer是线程安全的,StringBuilder是非线程安全的 2.对String的修改其实是new了一个StringBuilder并调用append方法,然后调用toSt ...
 - YTU 2896: J--Zipper
			
2896: J--Zipper 时间限制: 1 Sec 内存限制: 128 MB 提交: 29 解决: 15 题目描述 Given three strings, you are to determ ...
 - CSYZDay2模拟题解
			
T1.rotate [问题描述] ZYL有N张牌编号分别为1, 2,……,N.他把这N张牌打乱排成一排,然后他要做一次旋转使得旋转后固定点尽可能多.如果第i个位置的牌的编号为i,我们就称之为固定点.旋 ...
 - svn报错:privious operation has not finshed;run 'cleanup' if it was interrupted
			
在更新svn的过程中,可能中途会取消,取消之后再次更新时可能提示,如下图: 下载sqlite3工具,进入此下载地址:https://www.sqlite.org/download.html 将sqli ...
 - python 面向对象十 __init__和__new__
			
一.__init__和__new__方法 __init__ 和 __new__ 最主要的区别在于:1.__init__ 通常用于初始化一个新实例,控制这个初始化的过程,比如添加一些属性, 做一些额外的 ...
 - ssh 公钥登录远程主机
			
ssh-keygen 然后一路回车就可以了 ssh-copy-id user@host user代表用户名,host代表主机地址 然后根据提示输入远程主机的密码,成功,再登录就不用输入密码了
 - Java 反射机制详解(上)
			
一.什么是反射 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意方法和属性:这种动态获取信息以及动态调用对象方法的功能称为java ...
 - VS2010编译错: #error : This file requires _WIN32_WINNT to be #defined at least to 0x0403...的解决方法
			
最近拿到一个别人的工程,是使用VS.net创建的,而我的机器上只有vs2010,于是用自带的转换工具将它转换成vs2010的工程,转换之前我就很担心,怕转换完后会出问题,但是没有办法,我实在是 ...