1. ホーム
  2. ウィンドウズ

[解決済み】バッチファイル。部分文字列が(ファイル内ではなく)文字列内にあるかどうかを調べる

2022-04-03 09:58:09

質問

バッチファイルの中で、文字列 abcdefg . をチェックしたいのです。 bcd が文字列の中にある。

残念ながら、私が見つけた解決策はすべて ファイル は、文字列ではなく、部分文字列を探します。

簡単な解決方法はありますか?

どのように解決するのですか?

はい、置換を使用して、元の文字列と照合することができます。

if not x%str1:bcd=%==x%str1% echo It contains bcd

%str1:bcd=% ビットは bcdstr1 を空文字列にして、オリジナルと異なるようにしました。

オリジナルが bcd の文字列が含まれていれば、変更後のバージョンは同一になります。

以下のスクリプトでテストすると、実際に動作することがわかります。

@setlocal enableextensions enabledelayedexpansion
@echo off
set str1=%1
if not x%str1:bcd=%==x%str1% echo It contains bcd
endlocal

そして、いろいろな実行結果です。

c:\testarea> testprog hello

c:\testarea> testprog abcdef
It contains bcd

c:\testarea> testprog bcd
It contains bcd

2,3の注意点。

  • if ステートメントがこのソリューションの中心で、他のすべてはサポートです。
  • x を等号の前に置くことで、文字列の bcd は問題なく動作します。また、特定の不適切な開始文字から保護することもできます。