0

以下のWindowsバッチスクリプトを書きたいと思います。

C:\test\パスの下に、その日の日付が名前に含まれる毎日作成されるログ ファイルがいくつかあります。すなわち

u_ex130828.log     (created on 28/08/2013)
u_ex130827.log     (created on 28/08/2013)
u_ex130826.log     (created on 28/08/2013)

今日だけ作成されたすべてのファイルで特定のエラー メッセージを検索したい。エラー メッセージが見つかったらすぐに、エラー メッセージを含む完全な行を Output.txt という名前のテキスト ファイルに追加します。エラー メッセージが見つからない場合は、Output.txt ファイルを追加しません。

4

2 に答える 2

2

これはあなたが必要とすることをするはずです:

@echo off
for /f "delims=" %%a in ('wmic OS Get localdatetime  ^| find "."') do set "dt=%%a"
set "YY=%dt:~2,2%"
set "MM=%dt:~4,2%"
set "DD=%dt:~6,2%"

set "today=%YY%%MM%%DD%"

findstr /i /c:"File attached above for last 2 occasions." "C:\inetpub\logs\LogFiles\W3SVC1\*%today%.log" > "C:\inetpub\logs\LogFiles\W3SVC1\output.txt"
于 2013-09-05T06:50:40.880 に答える
1
cd /d C:\inetpub\logs\LogFiles\W3SVC1\
set "today=%date:~-4%%date:~-10,2%%date:~-7,2%"
for %%a in (*%today%.log) do (
    for /f "delims=" %%b in ('findstr /c:"File attached above for last 2 occasions." "%%~a"') do (
        (echo %%~a: %%~b)>>Output.txt
    )
)

必要に応じてファイル検索パターン*%today%.logを変更します。

于 2013-09-05T05:58:27.570 に答える