1

論理ディスクのサイズを出力するこの簡単なスクリプトを見つけました。

strComputer = "."

Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & strComputer & "\root\cimv2")

Set colDisks = objWMIService.ExecQuery _
    ("Select * from Win32_LogicalDisk")

For Each objDisk in colDisks
    Wscript.Echo "DeviceID: " & objDisk.DeviceID & " with a Disk Size: " & objDisk.Size

Next

私の VBS スキルは非常に貧弱で、助けが必要です。

  1. C パーティションと D パーティションのみを合計した単一サイズの数値を取得したい
  2. サイズ (ステップ 1 から) が 500 GB (450,000,000,000 から 550,000,000,000 の間) に等しくない場合、コンピュータに警告を表示させ、「任意のキーを押して」続行する必要があります。
  3. これは WinPE のプロンプトから実行されるため、ポップアップ ウィンドウは必要ありません。プロンプト ウィンドウで出力を取得することは可能ですか?

いろいろお願いしてますので、よろしかったらよろしくお願いします

4

1 に答える 1

1

cscript を使用してスクリプトを開始する必要があります。このコードはhttp://ask.metafilter.com/79481/vbscript-printing-to-command-lineから取得され ます。これにより、メッセージ ボックスではなくコマンド ラインにエコーを送信できます。

CheckStartMode
strComputer = "."

Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")

Set colDisks = objWMIService.ExecQuery _
("Select * from Win32_LogicalDisk")

For Each objDisk in colDisks
    If(objDisk.DeviceID="C:" or objDisk.DeviceID="D:") then
        Wscript.Echo "DeviceID: " & objDisk.DeviceID & " with a Disk Size: " & objDisk.Size
        TotalSize = CCur(TotalSize) + CCur(objDisk.Size)
    End if
Next
If(TotalSize <450000000000 or TotalSize >550000000000) then
    Wscript.Echo "Disk size of " & TotalSize & " is out of range."
    Wscript.Echo "Press enter to contine."
    z = WScript.StdIn.Read(1)
End if

Wscript.Echo "Complete, Press enter to end."
z = WScript.StdIn.Read(1)
Sub CheckStartMode
     ' Returns the running executable as upper case from the last \ symbol
     strStartExe    = UCase( Mid( wscript.fullname, instrRev(wscript.fullname, "\") + 1 ) )

     If Not strStartExe = "CSCRIPT.EXE" Then
          ' This wasn't launched with cscript.exe, so relaunch using cscript.exe explicitly!
          ' wscript.scriptfullname is the full path to the actual script

          set           oSh = CreateObject("wscript.shell")
          oSh.Run   "cscript.exe """ & wscript.scriptfullname & """"
          wscript.quit

     End If
End Sub
于 2012-08-09T21:44:38.343 に答える