質問: 日付を変更して、特定のレベルでサブフォルダーを一覧表示します ここであなたたちのための挑戦:サブフォルダーのリストを生成するためのいくつかの方法(できれば組み込みですが、f/ossサードパーティアプリも検討される場合があります)が必要です特定のレベルでと一緒に(またはより良い) 、フィルタリング)「変更日」。フォルダのリストが必要であることに注意してくださいのみ-出力はファイルを除外する必要があります。例:フォルダ構造の場合:c: \---reports +----task1 | \----report1 | +----csv | +----html | \----xml +----task2 | +----report1 | | +----csv | | +----html | | \----xml | +----report2 | | +----csv | | +----html | | \----xml | \----report3 | +----csv | +----html | \----xml \----task3 +----report1 | +----csv | +----html | \----xml \----report2 +----csv +----html \----xml リストに次のような情報を含めたいのですが。path | modified =============================|========== c:\reports\task1\report1 | 6/23/2011 c:\reports\task2\report1 | 6/17/2011 c:\reports\task2\report2 | 6/30/2011 c:\reports\task2\report3 | 7/06/2011 c:\reports\task3\report1 | 6/22/2011 c:\reports\task3\report2 | 7/13/2011 (「report#」フォルダーのレベルより上または下のフォルダーは除外されることに注意してください。)または、理想的には、次のようなレポートを生成できるものが必要です。path | modified =============================|========== c:\reports\task1\report1 | 6/23/2011 c:\reports\task2\report1 | 6/17/2011 c:\reports\task2\report2 | 6/30/2011 c:\reports\task3\report1 | 6/22/2011 =============================|========== total | 4 (これは、特定の日付範囲に制限された、前のリストのフィルター処理されたバージョンを表すことに注意してください。)これは、windows xp/2003で実行される予定です。 powershellが利用可能です。繰り返しになりますが、利用可能な組み込みユーティリティを使用したいのですが、f/ossツールも検討される可能性があります。
回答: パワーシェル:_gci c:\reports\*\* | where {$_.lastwritetime -gt ((get-date)- (new-timespan -day 7))} | select fullname,lastwritetime | ft _少し分解します:gci(別名_get-childitem_)は、そのように聞こえ、提供されたファイルシステムパスをオブジェクトとして扱い、そこから子アイテム(ファイルまたはフォルダー)をプルします。これは、引数として単一のフィルター関数を持つwhereステートメントにパイプされます。フィルタ関数は「単純な」比較です。この場合、{a -gt b} = "aがbよりも大きい場合はtrue"です。この最初の部分は_$_.lastwritetime_で、パイプから渡された各オブジェクトを取得し、lastwritetimeプロパティを引き出します。これの最後の部分は、相対的な日付構成です。 psでは非常に単純なものはありません。日付の最初の部分は現在の日付を取得し、その数値から時間を減算します(この例では、7日の値を含む新しい日付オブジェクトを作成しているため、マイナス7日で日付が得られます。 7日前)。whereフィルタリングを通過したオブジェクトから、fullnameプロパティとlastwritetimeプロパティだけを取り出しています。これが、私たちが気にするすべてだからです。最後に、それは_format-table_(別名ft)コマンドにパイプされるので、次のようなきれいなテーブルを作成します。_fullname lastwritetime -------- ------------- c:\reports\task1\report1 7/11/2011 10:00:00 am c:\reports\task2\report1 7/10/2011 5:00:00 am c:\reports\task2\report2 7/6/2011 9:00:00 pm c:\reports\task4\report7 7/4/2011 3:00:00 pm _すべてのカウントを取得するには、上記のコマンドを次のように囲みます。_(mess_from_above_less_the_ft_part).count_( "| ft"の部分を削除する必要があります。そうしないと、4行のテーブル形式が追加され、カウントされてカウントが破棄されます。 4.4。