私は以下の簡単なコードを使用しているコマンドラインですべての接続されたディスクドライブのモデル、名前、インデックス、サイズを表示したい
wmic diskdrive GET index,caption,name,size /format:table
出力
Caption Index Name Size
SAMSUNG SSD PM830 2.5" 7 0 \\.\PHYSICALDRIVE0 256052966400
Seagate backup plus 1 \\.\PHYSICALDRIVE1 536870912000
サイズをGB単位で表示することを除いて、上記と同じ出力が必要です。
forループとtemp vbファイルを使用してそれを行う方法はいくつかあると思います。
Windows cmdコードを具体的に探しています。誰でも助けることができますか?
サイズ変換を行い、cmdで表示することができます
for /f "tokens=1,2" %a in ('WMIC DISKDRIVE GET Name^,Size ^|FINDSTR /I /V "Name"') do @echo wsh.echo "%a" ^& " size=" ^& FormatNumber^(cdbl^(%b^)/1024/1024/1024, 2^)^& " GiB" > %temp%\tmp.vbs & @if not "%b"=="" @echo( & @cscript //nologo %temp%\tmp.vbs & del %temp%\tmp.vbs
出力
\\.\PHYSICALDRIVE0 Size=238.47 (GB)
しかし、私はまだモデル名を正しく表示することができません。私はforループを意図したとおりに実行することができません(私の場合、モデル名の間にスペースがあります以下のコードはモデルを印刷するだけで動作します
for /f "tokens=1-5 skip=1" %a in ('wmic diskdrive GET model') do @echo. %a %b %c %d %e
出力
SAMSUNG SSD PM830 2.5" 7
誰かが両方のコードを組み合わせて、次のように表示するのを手伝ってくれますか
SAMSUNG SSD PM830 2.5" 7 \\.\PHYSICALDRIVE0 Size=238.47 (GB)
GBにバイトを変換するWindowsバッチと、Windowsのバッチファイル内の文字列を分割する方法は?。
—
セス
もちろんできます。WMICの出力をファイルに送信し(/ OUTPUTなどを使用するか、リダイレクトによって)、VBScriptにファイルを読み取らせます。または、VBScriptで(WMICを使用する代わりに)WMIと対話することもできますが、これは簡単かもしれません。数値をVBScriptに取得したら、除算は簡単なはずです。
—
TOOGAM