2016-05-17 14 views
1

私はWindows 8.1で約1ヶ月前にファイルを作成しました。私はそれを探していますが、私はそれを見つけることができません(私はたくさんのファイルを持っています)ので、私は彼らのコンテンツ "otro"(スペイン語で)の単語だけを覚えていますが、私は日付でファイルをフィルタリングしたいと思います(なぜなら、私は月前にファイルを作成したことを知っているからです)。私が使用していたファイルの内容によってフィルタリングするに日付でファイルをフィルタリングする(CMDで)

findstr /s /i /n /c:"otro" *.txt 

私は(日付別)そのコマンド他のフィルタに追加する必要があります。私はパイプと日付でフィルタリングするコマンドを追加する必要があると思います。

答えて

1

日付でファイルを並べ替える方法はdir /odですが、サブフォルダ全体では機能しません。しかし、単一の月に絞り込むには、次のように使用することができます。

for /f "delims=" %i in ('dir /s /b /od /a-d *.txt') do @(find /i "otro" "%i" >nul &&echo %~ti %i|findstr /b "05....2016") 

(これはコマンドラインで使用するためのものですバッチファイルで使用するために二重のすべての%。)。

otroを含むすべてのサブフォルダと、今年5月に修正されたサブフォルダ(現在は6月中旬、「4週間前プラスマイナス2週間」)をすべて見つけます(日付 - mm/dd/yyyyまたはmm-dd-yyyyまたはmm.dd.yyyy; dd.mm.yyyyフォーマットの場合はfindstr /b "...05.2016")。私は、彼らのあまりないことを願っています...

+0

'find'は正しくERRORLEVELを設定しますか?また、これは日付形式のロケール設定によって異なります。 en/USの外ではおそらく異なるでしょう。 – lit

+0

@リトゥグジスト私は誤った結果を与えるために 'find'-errorlevelを見つけたことはありません。反例がありますか?そして、これは_ロケールに依存します(_ "日付の書式を仮定して..." _)それは 'wmic datafile'で一般化されることができますが、これは(おそらく)仕事。 – Stephan

+0

ありがとうStephan :)私はあなたのコードのおかげでファイルを見つけました。私はあなたに "日付形式"を "... 05.2016"と言いました。コマンドラインでループを使用することが可能であることは本当に面白いです(私は知らなかった)、私はコードを研究するつもりです。あなたの答えを解決策としてマークします。 – learnprogramming

関連する問題