sysinternalsのPsInfoを使用して、ドライブ情報をcsvの形式で返します。より読みやすくするためにcsvを解析する
このコマンドを実行するとします。
psinfo -c -d volume
次の出力が表示されます。出力はスプレッドシートビューアによって読み取られたとき
PCNAME,,
,,C:,Fixed,NTFS,,930.97 GB,705.81 GB,75.8%
,,G:,Fixed,NTFS,My Book,1862.98 GB,889.71 GB,47.8%
だから、それは読みやすく、整理表示されます。ここで
PCName,,C:,Fixed,NTFS,,930.97 GB,705.81 GB,75.8%,D:,CD-ROM,,,,,0.0%,G:,Fixed,NTFS,My Book,1862.98 GB,889.71 GB,47.8%
私の目標は、このフォーマットを達成するためにその出力を解析することです。
ドライブ文字のビットと一致するようにregexを試してみましたが、正しく出力をキャプチャする方法がわかりません。
編集:(実際に私のコードを投稿するのを忘れていました...) これはこれまで私が行ったことです。
ECHO OFF
For /f "tokens=1*" %%x in ('net view ^| find "\\"') do (psinfo %%x filter -d -c >> out.csv & echo. >> out.csv)
::used to remove blanmk lines from output
@jrepl "^[ \t]*(.*?)[ \t]*$" "$1?$1:false" /jmatch /f out.csv /o -
pause
CSVは、各列の値を保持する必要があり、あなたの目標は、壊れたものです。 Excelのフィルタを使用して、必要なものをグループ化することができます。 – YOU
Powershellには、Impor-CSVとExport-CSVという多くの文字列操作と解析関数があります。あなたはCSVを持っていません。あなたが望むものを得るためにpowershellコマンドを使うのはなぜですか? 'Get-Volume'を呼び出すだけです。 –
psinfoを使ってネットワークからボリューム情報を収集するというアイディアでした。これはpowershellで可能ですか? – Solaris765