WSHでファイルに文字列があるかry…

最近シェルスクリプトでも同じの書いたような…けどWSHでパッと書けなかったのでリベンジ

仕様はWSHでファイル内に文字列があるか判定して戻り値を返す。

以下、引数与えたり サブルーチン書いたり 色々マシマシサンプル

[test.bat]
@echo off
 rem findStrの結果を変数に格納しマッチした
 rem 判定に関してはサブルーチン化し戻り値を返す
 rem 文字列があったかIF判定する
 rem 引数 1:ファイル

 rem サブルーチン呼び出し(文字列testが存在するか)
 call :sub test %1
 rem 戻り値確認
 echo %errorlevel%

 rem サブルーチン呼び出し(文字列abcが存在するか)
 call :sub abc %1
 rem 戻り値確認
 echo %errorlevel%

 exit /b


 rem コマンドの実行+変数への結果格納
 rem 引数 1:検索文字列 2:ファイルパス
 :sub
 setlocal
 rem 変数の初期化
 set retVal=""

 FOR /F %%i in ('findstr %1 %2') do set retVal=%%i

 rem 変数の中身確認
 rem echo %retVal%

 rem 変数が空か判定
 IF %retVal% neq "" ( 
     echo ファイル内にマッチする文字列があった
     exit /b 1
 )ELSE ( 
     echo ファイル内にマッチする文字列がなかった
     exit /b 0
 )
 

読み込ませたファイル内容(test.txt)

実行画面

そこそこ便利だと思うので多用していきたい

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です