bat 获取硬件问题(硬盘,cpu)
我现在写的批处理文件遇到几个问题:
1. 想得到IP,我直接用ipconfig,虽然可以得到,但是如何截取,只要后面的IP地址?
得到: IP Address. . . . . . . . . . . . : 10.8.0.91
只显示红色的部分,如何截取???
echo IP地址: for /f "tokens=1,* delims==" %%a in ('ipconfig^|find "IP Address"') do ( set /a tee+=1 echo %%a %%b) echo.
echo 硬 盘: for /f "tokens=1,* delims==" %%a in ('wmic DISKDRIVE get size^,totalsectors /value') do ( set /a tee+=1 if "!tee!" == "3" echo 总 空 间 = %%b if "!tee!" == "4" echo 已 用 空 间 = %%b ) echo.
@echo offfor /f "tokens=4" %%a in ('route print^|findstr 0.0.0.0.*0.0.0.0') do ( set IP=%%a)echo,%IP%
[解决办法]
硬盘空间的大小一般来说是超出了BAT能够直接计算的范围,也就是说直接除以1024是不行的。一般的解决方案:
1、自己在BAT里面写大数算法
2、在BAT里面动态生成一个用于计算的VBS
不知楼主更加倾向于哪种方案?
[解决办法]
echo %number_of_processors%
[解决办法]
@echo offsetlocal enabledelayedexpansionclsset /a num2=1024*1024set total=0for %%i in (c d e f g h i j k l m n o p q r s t u v w x y z) do ( set num1=0 set num3_str= set num4= for /f "tokens=3" %%j in ('dir /-c %%i:\ 2^>nul') do ( set num1=%%j ) if not "!num1!"=="0" ( call :loop for /f "delims=0 tokens=*" %%k in ("!num3_str!") do ( set num3_str=%%k ) echo. echo %%i 盘剩余空间为 !num3_str! MB set /a total+=!num3_str! echo. ))echo 剩余空间总量为 !total! MBpausegoto :eof:loop:: 求商set /a num3=%num4%%num1:~0,1%/%num2%:: 求商序列set num3_str=%num3_str%%num3%:: 求余set /a num4=%num4%%num1:~0,1%%%%num2%if %num4% equ 0 ( set num4=)set num1=%num1:~1%if not "%num1%"=="" ( goto :loop)goto :eof