发布于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毫秒。
@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下目录和文件个数的批处理,目前已经在线上系统中使用,利用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的屏幕输出,因为批处理在给变量赋值时会将赋值结果直接输出,所以在赋值时可以关闭屏幕输出,但是为了保存结果在后面还是要打开。
上一篇:如何禁用win10系统自动更新
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店