windowsのバッチで文字列のStartWith関数を実装したい
困っている事
与えられた文字列がfoo\bar
に合致していれば、result=1
として、合致していなければ、result=0
としたいです。
しかし、結果がすべてresult=0
になってしまいます。
想定している結果(例)
foo\bar\foo -> result = 1
foo\bar\hoge\hoge -> result =1
bar\foo\foo -> result = 0
foo\foo\foo -> result = 0
hoge\hoge -> result = 0
環境
- windows 7
バッチファイル
@echo off
set FILE_PATH_TXT=%1
setlocal ENABLEDELAYEDEXPANSION
for /f %%a in (%FILE_PATH_TXT%) do (
call :startWithSrcPkgDir %%a
echo !result!
)
endlocal
:startWithSrcPkgDir
echo !%1! > nul findstr /rx ^foo\\bar.* && set result=1 || set result=0
exit /b
※ %FILE_PATH_TXT% には、c:\hoge\hoge.txt
のようなテキストファイルが渡されます。
※ テキストファイルの中身は
foo\bar\foo
foo\bar\hoge\hoge
bar\foo\foo
foo\foo\foo
hoge\hoge
のような形になっています。