商城首页欢迎来到中国正版软件门户

您的位置:首页 > 软件教程 >使用批处理程序统计并显示已执行程序的数量和执行时间

使用批处理程序统计并显示已执行程序的数量和执行时间

  发布于2025-01-15 阅读(0)

扫一扫,手机访问

用批处理依次执行目录下的程序统计并显示已执行程序的个数和所用

使用bat命令统计文件个数可以使用For /D或For /R命令。然而,用bat计时可能不太现实。可以尝试获取系统时间,并进行相减来计算时间差,但只能精确到秒。

比如:

set var=0

for /d %%i in (c:\*.exe) do %%i & set var=%var%+1

echo %var%

仅用批处理命令实现任意时间延迟,精确度10毫秒,误差50毫秒内

仅用批处理命令就可以实现延迟操作。

例:

@echo off

set /p delay=请输入需延迟的毫秒数:

set TotalTime=0

set NowTime=%time%

::读取起始时间,时间格式为:13:01:05.95

echo 程序开始时间:%NowTime%

:delay_continue

set /a minute1=1%NowTime:~3,2%-100

::读取起始时间的分钟数

set /a second1=1%NowTime:~-5,2%%NowTime:~-2%0-100000

::将起始时间的秒数转为毫秒

set NowTime=%time%

set /a minute2=1%NowTime:~3,2%-100

:: 读取现在时间的分钟数

set /a second2=1%NowTime:~-5,2%%NowTime:~-2%0-100000

::将现在时间的秒数转为毫秒

set /a TotalTime+=(%minute2%-%minute1%+60)%%60*60000+%second2%-%second1%

if %TotalTime% lss %delay% goto delay_continue

echo 程序结束时间:%time%

echo 设定延迟时间:%delay%毫秒

echo 实际延迟时间:%TotalTime%毫秒

pause

运行显示:

请输入需延迟的毫秒数:6000

程序开始时间:15:32:16.37

程序结束时间:15:32:22.37

设定延迟时间:6000毫秒

实际延迟时间:6000毫秒

请按任意键继续. . .

43

实现原理:首先设定要延迟的毫秒数,然后用循环累加时间,直到累加时间大于等于延迟时间。

误差:windows系统时间只能精确到10毫秒,所以理论上有可能存在10毫秒误差。经测试,当延迟时间大于500毫秒时,上面的延迟程序一般不存在误差。当延迟时间小于500毫秒时,可能有几十毫秒误差,为什么?因为延迟程序本身也是有运行时间的,同时系统时间只能精确到10毫秒。

如何用DOS批处理统计某个目录下的文件数量及剩余容量

@echo off

for /f %%i in ('dir /s *.*^|find /i "个文2113件"') do set num=%%i

echo.

echo 文件数量统计结果:5261

echo.

echo D:\movie目录下有 %num% 个文件

echo.

echo.

echo D盘空间统计结果:

echo.

echo 盘符 剩余空间(字节4102) 分区大小(字节)

wmic logicaldisk where caption="D:" get size,freespace,caption | findstr /v /i "caption"

pause>nul

将上面代码保存为bat文件,放到D:\movie目录下,每次想统计的1653时候运行该批处理即可(创建版个快捷方式)。运行后稍等片刻权即可显示出结果。。

用批处理依次执行目录下的程序统计并显示已执行程序的个数和所用

Windows下统计端口链接数的批处理怎么弄

这个批处理算是半原创吧,里面借鉴了文库里面一个统计windows下目录和文件个数的批处理,目前已经在线上系统中使用,利用vbs脚本文件进行调用,统计功能正常。

@Echo off

set/a a=0

netstat -an | find /i "port" > 列表文件保存路径

for /f "delims=" %%a in ('type 列表文件保存路径') do set/a a+=1

@Echo on

echo "%date% %time%----%a%"

这里简单说明一下:

set/a a=0 定义一个变量,并在这里对变量进行赋值,如果这里不对变量进行赋值,后面统计时候会出现多次累加的问题;

netstat -an | find /i "port" 的作用是在netstat命令输出的信息中找到对应的端口,并将这些信息重定向到一个文件中,方便后面使用

"delims="这个命令是设置windows切割字符串切割点的命令,比如一个字符串是asadafag,那么用delims=a这个命令后字符串再输出就变成了s d f g,如同awk里面的-F;

for xx %%a in ('xx') do xx这个是批处理里面的for循环;

@Echo off/on是开启和关闭echo的屏幕输出,因为批处理在给变量赋值时会将赋值结果直接输出,所以在赋值时可以关闭屏幕输出,但是为了保存结果在后面还是要打开。

本文转载于:https://www.docexcel.net/show/30_1762.html 如有侵犯,请联系admin@zhengruan.com删除

热门关注