[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
我来提供一个不需要转义的方案
  1. @echo off
  2. for /f "delims=:" %%i in ('findstr /n "^:DynamicScript$" "%~f0"') do (
  3.     more +%%i "%~f0" > new.vbs
  4. )
  5. goto :eof
  6. :DynamicScript
  7. Set objWMI = GetObject("winmgmts:\\.\root\cimv2")
  8. Set colDisks = objWMI.ExecQuery("select * from Win32_DiskDrive where MediaType like 'fixed%'")
  9. For Each objDisk in colDisks
  10.     i = i + 1
  11.     s = s & "硬盘" & i & ":" & vbTab
  12.     s = s & "大小:" & GetSize(objDisk.Size) & vbTab
  13.     s = s & "型号:" & objDisk.Caption & vbCrLf
  14.     strDiskID = Replace(objDisk.DeviceID, "\", "\\")
  15.     Set colPartitions = objWMI.ExecQuery _
  16.     ("ASSOCIATORS OF {Win32_DiskDrive.DeviceID=""" & strDiskID & """}" _
  17.     & " where AssocClass=Win32_DiskDriveToDiskPartition")
  18.     For Each objPartition in colPartitions
  19.         strPartId = objPartition.DeviceID
  20.         Set colLogicalDisks = objWMI.ExecQuery _
  21.         ("ASSOCIATORS OF {Win32_DiskPartition.DeviceID=""" & strPartId & """}  where AssocClass=Win32_LogicalDiskToPartition")
  22.         For Each objLogicalDisk in colLogicalDisks
  23.             size = objLogicalDisk.Size
  24.             free = objLogicalDisk.Freespace
  25.             used = FormatNumber((size - free) / size * 100, 2, true) & "%"
  26.             s = s & "分区" & objLogicalDisk.DeviceID & vbTab
  27.             s = s & "大小:" & GetSize(size) & vbTab
  28.             s = s & "剩余:" & GetSize(free) & vbTab
  29.             s = s & "使用率:" & used & vbCrLf
  30.         Next
  31.     Next
  32.     s = s & vbCrLf
  33. Next
  34. Set fso = CreateObject("Scripting.FileSystemObject")
  35. fso.OpenTextFile("c:\diskpart.txt", 2, true).Write s
  36. Function GetSize(intSize)
  37.     If intSize/1024/1024 > 1024 Then
  38.         GetSize = FormatNumber(intSize/1024/1024/1024, 2, true) & "GB"
  39.     Else
  40.         Getize = FormatNumber(intSize/1024/1024, 2, true) & "MB"
  41.     End If
  42. End Function
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表