2016-05-02 12 views
1

私はとフォルダ構造を持っています(私はsome_folderとしてそれを言及している)LDSで別の名前を持つ多くのフォルダがありますがバッチファイルを使用して.MFファイルの内容を読み取る方法は?

C:\LDS\some_folder/META_INF/MANIFEST.MF 

。各some_folderに私はMETA_INFのフォルダがあり、その中にMANIFEST.MFという名前のファイルがあります。

マニフェスト・バージョン:1.0

のClass-Path:アーティファクト・バージョン:1.0.0私はフォルダ名を表示する必要が

、最後

すべてMANIFEST.MFは、コンテンツを持っていますMANIFEST.MFの修正日およびWINDOWSのバッチファイルを使用する各フォルダのアーティファクトバージョン番号。

+0

'= %% I、 %%〜ti、 "&type %% i | find" artifact-version: "&echo(' – Stephan

答えて

0

オープンコマンドラインウィンドウからdir /b /s C:\LDS\MANIFEST.MFを使用して始めます。これはのすべてのファイルをC:\LDSとそのサブディレクトリの下に表示する必要があります。その後

for /F "delims=" %G in ('dir /b /s C:\LDS\MANIFEST.MF') do @echo %G %~tG 

は最終更新日と同じリストを表示する必要があります。その後

for /F "delims=" %G in ('dir /b /s C:\LDS\MANIFEST.MF') do @echo %G %~tG & type "%~fG" 

は、前のリスト、各ファイルの内容が表示されるはずです。次に

は、前のリストの各ファイルの内容を"artifact-version"文字列を含む行に絞り込む必要があります。

これは私のこのような種類の問題を解決する方法です。次のようにバッチスクリプトでは、%G%パーセント記号を倍増:

@ECHO OFF 
SETLOCAL EnableExtensions 
for /F "delims=" %%G in ('dir /b /s C:\LDS\MANIFEST.MF') do (
    echo %%G %%~tG 
    type "%%~fG"|findstr /I "artifact-version" 
    rem here you could substitute previous `echo … & type …` commands 
    rem   with another code snippet to make output more `nice` 
) 

リソース(必須読み取り):

+0

ありがとうJosefZ。これは本当に役に立ちました。私は今、私は出力で完全な道を得ていることを知りたい。しかし、私は、some_folder modified_dateとアーティファクトバージョンの出力を必要とし、フルパスではありません。 –

+0

[コマンドライン引数(パラメータ)]に関して 'echo %% G %%〜tG'行を作成します(http://ss64.com/ nt/syntax-args.html)リンクをクリックします。おそらく 'echo %%〜dpG %%〜tG'のようなものでしょうか? [Stephanのコメント]に注意を払う(http://stackoverflow.com/questions/36976184/how-to-read-content-of-a-mf-file-using-batch-file/36978710?noredirect = 1#comment61512961_36976184)も同様です。 – JosefZ

関連する問題