質問する質問する
 

回答済みget-childitemで取得した配列数について

  • 2009年3月18日 9:46OTAKA ユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダル
     
    お世話になります。

    あるフォルダにあるファイル数の取得を試みているのですが、

    @(get-childitem -recurese -include *.abc) .length
    では取得できるのですが、パイプを通して数を取得したいのですがどうしらよいでしょうか

    get-childItem -recurese -include *.abc | (ここでの記述がわからない)

    get-childItem -recurese -include *.abc | $input.Length
    を試してみましたがだめでした。

     ls -Recurse -Include *.abc | %{$i=0}{$i +=1}{write-host $i}
    こういう べたなやり方いやです。


    教えてください。

回答

  • 2009年3月18日 13:43HIROsDotNetMVPユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダル
     回答済みコードあり
    単純に数だけをパイプに渡すのであれば

    (Get-ChildItem -Recurese -Include *.abc).Length | Select

    では駄目でしょうか?

    もしくは多段になりますが

    Get-ChildItem -Recurese -Include *.abc | Measure-Object | Select Count 

    でも取得できます。

    パイプを使用しなくても取得できるので、どのような意味があるのかを教えていただけますか?
    • 回答としてマークOTAKA 2009年3月25日 7:49
    •  

すべての返信

  • 2009年3月18日 13:43HIROsDotNetMVPユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダル
     回答済みコードあり
    単純に数だけをパイプに渡すのであれば

    (Get-ChildItem -Recurese -Include *.abc).Length | Select

    では駄目でしょうか?

    もしくは多段になりますが

    Get-ChildItem -Recurese -Include *.abc | Measure-Object | Select Count 

    でも取得できます。

    パイプを使用しなくても取得できるので、どのような意味があるのかを教えていただけますか?
    • 回答としてマークOTAKA 2009年3月25日 7:49
    •  
  • 2009年3月18日 15:22kw-shingo ユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダル
     コードあり
      | % {$x = @()}{$x += $_}{$x.count}

    だと、やはりべたですよね。。。
    私も、パイプを通したい意味が気になります。

  • 2009年3月25日 7:45OTAKA ユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダル
     
    お世話になります。
    ご返事ありがとうございます。

    パイプを通す意味ですが、いくつかのパイプを通っていく過程で、途中で今いくつくらいの数があるのかを
    みたいときに、コマンドを括弧で括るのがなんかストレスを感じるというか、入力していくそのままの流れで、
    個数がわかればいいと思ったのがきっかけです。

    最初はメソッドを作成しようかなと思っていたのですが、(メソッド内では、$inputが使用できるので)
    標準的な方法が無いのかと思い質問させていただきました。

    これが理由です。
  • 2009年3月25日 7:49OTAKA ユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダル
     
    すみません。書き忘れです。

    結局、Measure-Object というコマンドレットが望み通りのものでした。
    ありがとうございました。