• ベストアンサー
  • 困ってます

powershellでフォルダ情報を取得したい

  • 質問No.9645505
  • 閲覧数52
  • ありがとう数2
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 44% (84/190)

■前提・実現したいこと
powershellで、カレントフォルダ配下にある多数のフォルダに対し、
フォルダ名、最終更新日時、フォルダ内のjpgファイルの個数、フォルダ内のpngファイルの個数
をカンマ区切りのcsv形式でファイルに保存したいです。

■試したこと
以下のコマンドで、ファイル名、最終更新日は取得することができました。
Get-ChildItem | Sort-Object Name | Select-Object Name, LastWriteTime | convertTo-csv -delimiter "`t" | Select -Skip 2 | Out-File ../out.txt -encoding Default

1つずつのフォルダに対して以下のコマンドでjpgファイルの個数が取得できるようです。
(Get-ChildItem . | Where-Object { $_.Extension -eq ".jpg" }).Count

最初のコマンドにうまく合わせることで、1コマンドで取得できるようにしたいのですが、
どうすればよいのか分からず、教えていただけないでしょうか。

質問者が選んだベストアンサー

  • 回答No.1
  • ベストアンサー

ベストアンサー率 45% (197/432)

(get-item .).getdirectories()|%{
$name=$_.name
$time=$_.lastwritetime.toString()
$JPGs=(get-item $_.fullname).getfiles("*.jpg").count
$PNGs=(get-item $_.fullname).getfiles("*.png").count
"$name,$time,$JPGs,$PNGs"
}|out-file ./out.csv
補足コメント
palayo

お礼率 44% (84/190)

$JPGs=(get-item $_.fullname).getfiles("*.jpg").count
の部分を単純に
$JPGs=$_.getfiles("*.jpg").count
で行けました。
ありがとうございました!
投稿日時:2019/08/15 18:11
お礼コメント
palayo

お礼率 44% (84/190)

回答ありがとうございます。
実行してみましたが、以下のエラーが発生しました・・。
----------
null 値の式ではメソッドを呼び出せません。
発生場所 行:4 文字:1
+ $JPGs=(get-item $_.fullname).getfiles("*.jpg").count
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) []、RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
----------
null 値の式ではメソッドを呼び出せません。
発生場所 行:5 文字:1
+ $PNGs=(get-item $_.fullname).getfiles("*.png").count
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) []、RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
----------
fullnameからget-itemしている部分でNullが返っているようです。
いただいたコマンドでやり方は理解できたので、なんとかなりそうな気がします。
自分でももう少し調べてみますが、何か分かれば教えてください。
投稿日時:2019/08/15 17:05
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

ピックアップ

ページ先頭へ