首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > windows >

bat 获取硬件有关问题(硬盘,cpu)

2011-12-27 
bat 获取硬件问题(硬盘,cpu)我现在写的批处理文件遇到几个问题:1. 想得到IP,我直接用ipconfig,虽然可以得

bat 获取硬件问题(硬盘,cpu)
我现在写的批处理文件遇到几个问题:
1. 想得到IP,我直接用ipconfig,虽然可以得到,但是如何截取,只要后面的IP地址?
得到: IP Address. . . . . . . . . . . . : 10.8.0.91
只显示红色的部分,如何截取???

Assembly code
echo IP地址: for /f "tokens=1,* delims==" %%a in ('ipconfig^|find "IP Address"') do (         set /a tee+=1     echo %%a %%b) echo. 


2. 做硬盘剩余空间的时候,要只得到总空间和已用空间,因为不会处理批处理中的计算,所以只能得到单独的如c e
f 盘等的信息,我要得到他们已用空间的和,请问如何处理?转换成MB形式(我除的时候不知道怎么处理)?就是最后只用写已用空间 ...MB 
总空间 ...MB
Assembly code
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.


3. 计算cpu核数时候有问题,一是NumberOfCores / NumberOfLogicalProcessors这两个没有,我想得到普遍适合的(限于windows系列);二是不会计算,只会简单的得到处理器个数。。 

望高手,版主指点!!!谢谢!!!结贴率100%。。。。


[解决办法]
test1.bat

BatchFile code
@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

不知楼主更加倾向于哪种方案?
[解决办法]
BatchFile code
echo %number_of_processors%
[解决办法]
BatchFile code
@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 

热点排行