[ホーム] - [バッチファイル サンプル一覧] - [テキストファイル内で検索した文字の行数を変数として取り込む]

テキストファイル内で検索した文字の行数を変数として取り込む | Windows バッチファイル



目的


テキストファイルをある文字で検索し、ヒットした行数を変数として取り込む場合のサンプルを紹介します。Window 10のバッチファイル環境となります。
例えば "plsfindme"という文字がテキストファイルの15行目に存在する場合、15という数字をfindnumber変数に代入します。


サンプルコード


以下の例では "c:\test\findme.txt" というファイルの中から "str" という文字列を検索し、検索で見つかった行数を"findnumber" 変数に代入しています。
その後"findnumber"が5より小さいか確認を行っています。

ポイントは find コマンドの行数をカウントする /c オプションを使用する点、及び結果を直接変数に代入することが出来ないため、一度 tmp.txt という中間ファイルに結果を出力し、その後変数に取り込んでいる点です。


type c:\test\findme.txt |find /c "str" > tmp.txt

SET /P findnumber=<tmp.txt

echo %findnumber%

if %findnumber% lss 5 (
echo 5より小さい
)




参考



set /P はあまり見かけませんが、入力された文字列を変数として扱う便利な機能です。set /A は評価して代入、 set /P はユーザ入力と記憶いてください。


/P はユーザーによって入力された入力行を変数の値として設定できるようにします。
入力行を読み取る前に、指定されたプロンプト文字列を表示します。プロンプト文
字列は空でもかまいません。


ファイルの行数をカウントするコマンド






本サイト内掲載されている情報は、著作権法により保護されています。いかなる場合でも権利者の許可なくコピー、配布することはできません。 このページはリンクフリーです。(このページへの直接リンクも可能です。)

[ホーム] - [バッチファイル サンプル一覧]