2012-02-10 12 views
0

ログファイルgetttingが生成されていますが、次の行が存在しないかどうかを調べる必要がありますか?バッチスクリプト:ファイルから2行を検索する方法

ログファイル:

ftp>サーバーに接続しました。

のftp> mgetはXYZ * A.に設定

200種類

のftp> mgetはABC *

200セットタイプ

のftp> byeと

と私に上記のログファイルが: "200タイプがAに設定されているかどうかを確認する必要があります。

ftp> "

私は連続した行を検索する方法を教えてください。そして2行目で文字列だけを検索しようとしています。

答えて

1

各行の間に空白行があるかどうかわかりません。以下の解決策は、各行の間に空白行がないことを前提としています。言い換えれば、以下の解決策は2行に一致し、2行目は少なくとも1文字でなければなりません。

@echo off 
setlocal disableDelayedExpansion 
::Define LF variable containing a linefeed (0x0A) 
set LF=^ 


::Above 2 blank lines are critical - do not remove 

::Define CR variable containing a carriage return (0x0D) 
for /f %%a in ('copy /Z "%~f0" nul') do set "CR=%%a" 

::The above variables should be accessed using delayed expansion 
setlocal enableDelayedExpansion 

::regex "!CR!*!LF!" will match both Unix and Windows style End-Of-Line 
findstr /rc:"!CR!*!LF!200 Type set to A!CR!*!LF!." log.txt >nul && (echo found) || echo not found 

あなたが途中で空行と3行に一致するようにしようとしている場合は、最後の行は、同様に、改行を越え検索の詳細については

findstr /rc:"!CR!*!LF!200 Type set to A!CR!*!LF!!CR!*!LF!." log.txt >nul && (echo found) || echo not found 

に変更する必要があります他のクールなFINDSTR機能(とバグ!)What are the undocumented features and limitations of the Windows FINDSTR command?

関連する問題