Home / Windows:バッチファイル - 文字列比較 strcmp

置換(削除)機能を使う方法。空になったか、一部置換されたかどうかで判定する。
strcmp の命名は紛らわしいかも知れない…

%1: 文字列1
%2: 文字列2
0: 不一致
1: 部分一致
2: 完全一致
要 EnableDelayedExpansion
:strcmp
    set s0=%1
    set s1=%1
    set s1=!s1:*%2=!
    if not defined s1 exit /b 2
    if %s1% EQU %s0% exit /b 0
    exit /b 1

呼び出し例:

@echo off
setlocal EnableDelayedExpansion

call :strcmp %~1 %~2

if ErrorLevel 2 (echo 2: 完全一致
) else if ErrorLevel 1 (echo 1: 部分一致
) else if ErrorLevel 0 echo 0: 不一致
endlocal
exit /b

以前に書いたコードは間違いが有った m(_ _)m


Home / Windows:バッチファイル - 文字列比較 strcmp

© 2008 usskim    http://usskim.web.fc2.com/
inserted by FC2 system