とりあえず半歩

学んだことを1日1個、簡単なことでも良いから記録していきたい。

findstrコマンドで検索した結果を条件分岐に用いる

課題

バッチ処理にてファイル内に決められた文字列が存在するか検索し、その結果によって異なる処理をしたい。

実行

DOSコマンドで実現するにはfindstrコマンドとERRORLEVELを使う。

※findコマンドもあるが、私の環境では別コマンドになっているため、findstrを使ってる。

試しに次のファイルの中から"カピバラさん"という文字列と"すいか"という文字列を検索し、あれば"記録済み"、なければ"未記録"と表示する例をつくる。

カピバラさん りんご
ホワイトさん おれんじ
リーゼントくん ぶどう
ひだまりさん みかん
カピじい だいふく

続いてバッチファイルの中身(Favorite.txtは上記のファイル名)

findstr "カピバラさん" Favorite.txt
echo %ERRORLEVEL%
if "%ERRORLEVEL%"=="0" (
  echo "記録済み"
) else if "%ERRORLEVEL%"=="1" (
  echo "未記録"
)

findstr "すいか" Favorite.txt
echo %ERRORLEVEL%
if "%ERRORLEVEL%"=="0" (
  echo "記録済み"
) else if "%ERRORLEVEL%"=="1" (
  echo "未記録"
)

結果は無事成功

C:\Users\soto\Desktop>test.bat
カピバラさん りんご
0
"記録済み"
1
"未記録"

参考