2

バッチファイルについて質問です。行ごとに最初の 10 文字のみで数字と文字の組み合わせの文字列を検索し (複数の .txt ファイル内)、行全体を出力 .txt ファイルに出力するバッチ ファイルが必要です。現時点で私はこれを使用しています:

@echo off  
findstr "A1234 B5678" "*.txt"  
for /f "delims=" %%A in ('findstr "A1234 B5678" "*.txt"') do (echo %%A >> OUTPUTFILE.txt) 

したがって、上記で探しているのは、ディレクトリ内のすべての txt ファイル内の文字 A1234 と B5678 (単なる例) の組み合わせであり、それらを outputfile.txt に出力します。これは問題なく動作しますが、これを少し改善する必要があります。行ごとに最初の 10 文字だけでこの組み合わせ (A1234 と B5678) をバッチで見つけて、行全体を出力 txt ファイルに出力するだけです。たとえば、次のような行を含む複数のtxtファイルがあります。

00 A1234 QWERTZ  
AA B5678 ASDFGH

バッチは、文字列の組み合わせ A1234 と B5678 についてすべてのファイルをチェックし、その組み合わせを含む行全体を出力します。
私の英語は最高ではないので、皆さんが私を理解してくれることを願っています。また、私はcmdの経験があまりないので、可能であれば、できるだけ簡単に(わかりやすく)してください:)。
どうもありがとう!

4

4 に答える 4

0

最初の 10 文字を検索して、複数の特定の英数字の組み合わせを探します。これは正規表現でできると思いますが、残念ながら findstr は代替パターンを処理できません。

findstr /r "(pattern1|pattern2)"

動作しません。したがって、ここで見つけることができるウィンドウの grep に分岐する必要があり ます n パターンの構文は次のとおりです。

grep -h -E -e "^.. ({PATTERN 1}|{PATTERN 2}|...|{PATTERN 2})" *.txt

あなたの例では、次を使用できます。

grep -h -E -e "^.. (A1234|B5678)" *.txt

すべての *.txt で、ランダムな 2 文字で始まり、その後にスペースが続き、その後に A1234 または B5678 が続く行を検索し、この行を出力します。先頭の -h は、行のファイル名の出力を抑制します。

于 2013-09-16T09:25:43.583 に答える
0

cmd の使用に固執している場合は、次のように正規表現フラグを指定して findstr を使用できます。

C:\>type test.txt
00 A1234 QWERTZ
AA B5678 ASDFGH
BB A1234 B5678
00 A1234 QWERTZ
AA B5678 ASDFGH
BB A1234 B5678
00 A1234 QWERTZ
AA B5678 ASDFGH
BB A1234 B5678
00 A1234 QWERTZ
AA B5678 ASDFGH
BB A1234 B5678
00 A1234 QWERTZ
AA B5678 ASDFGH
BB A1234 B5678
00 A1234 QWERTZ
AA B5678 ASDFGH
BB A1234 B5678
00 A1234 QWERTZ
AA B5678 ASDFGH
BB A1234 B5678

C:\>findstr /R "^*[A][0-9]* [B][0-9]*$" test.txt
BB A1234 B5678
BB A1234 B5678
BB A1234 B5678
BB A1234 B5678
BB A1234 B5678
BB A1234 B5678
BB A1234 B5678

-- ab1

于 2013-09-16T08:44:08.653 に答える
0

findrepl.batこれは、 grep に似ていますが、単純なバッチ ファイルとして実行されるというヘルパー バッチ ファイルを使用します。

findrepl.bat はjscriptWindows Scripting Host で使用され、IT 管理者が WSH を無効にしない限り機能します。

@echo off 
for %%a in (*.txt) do (
echo ============="%%a"================>>search
type "%%a"|findrepl "^.. (A1234|B5678)">>search 
)
ren search search.txt
于 2013-09-16T09:52:27.007 に答える