次のパターンLog_yyyy_M_d.logで名前が付けられたいくつかのログファイルがあります
Log_2010_7_1.log
Log_2010_7_2.log
Log_2010_7_3.log
Log_2010_7_4.log
Log_2010_7_5.log
etc....
それらすべてを1つのファイルにマージして、コンテンツを日付順に並べ替えたいと思います。
だから私はこのようなものを思いついた:
for %f in (*.log) do type “%f” >> mergedlogs.txt
ただし、日付順(asc)のmergedlogs.txtファイルには追加されません。標準のシェル/PowerShellスクリプトを使用してそれをどのように達成できますか?これを解決するために小さな.exeを作成する必要がないようにしたいと思っていました(実際には、シェルスクリプトでこれを実行しようとする代わりに、多くの時間を節約できたと思います)。
1つのアプローチは、マージ構文に順序を実行させることですが、ファイルの名前を別のパターンに変更する必要がありますLog_yyyy_MM_dd.log
ワイルドカードによる複数の名前変更を行うためのシェルスクリプトを取得できないようです
dir * ??.logおよびdir * _ ?. logは、名前を変更する必要のあるすべてのファイル名を提供するはずですが、この構文では、目的の結果が得られません。
ren *_?.log *_0?.log
これは、望ましい名前変更の結果になります:Log_2010_12_1.log >> Log_2010_12_01.log
シェルの名前変更スクリプト(またはPowerShell)のヘルプ、またはコンテンツがファイル名-日付順に並べられている単一のファイルにすべてのログファイルをマージすることである主な目標を達成するための別のアプローチがあれば幸いです。