0

私はこれに対する答えを見つけることができないようです.すべての質問は、テキストファイルにあるものを変数として設定することに焦点を当てているようです. 指定した文字列がテキスト ファイルのどこかに存在するかどうかを確認したいだけです。(行を別の文字列と共有するのではなく、独自の行で)

例:

%usrname%= 魚

%banfile%= は何も入っていない単なるテキスト ファイルです。

for /f "usebackq tokens=*" %%f in ('find /c /i "%usrname%" "%banfile%"') do set banned=1

テキスト ファイルに何もない場合でも、%banned%=1 が設定されます。テキスト ファイル内に 1 つ以上の文字列 "fish" が見つかった場合にのみ、変数 %banned%=1 を設定するようにします。

私はforコマンドを理解し始めたばかりなので、ほとんどの人にとってこれはおそらく非常に簡単です。助けてくれてありがとう!

4

2 に答える 2

4

forこれにはループは必要ありません。

find /i "%usrname%" "%banfile%" >nul 2>&1&&set /a banned=1 || set /a banned=0
echo %banned%
于 2013-08-11T08:53:08.037 に答える
1

他のテキストがない行を検索fishするには、次のように使用できます。

@echo off
set "usrname=fish"
set "banfile=c:\folder\file.txt"
set "banned="
findstr /i /r "^%usrname%$" "%banfile%" >nul && set banned=1

/i は大文字と小文字を区別せずfish、ファイル内の任意の行で単独で検出されます。

于 2013-08-11T12:11:26.867 に答える