バッチファイルと同じフォルダーにテキストファイルがあります。
したがって、バッチ ファイルでテキスト ファイルの内容を読み取り、そのテキスト ファイルの内容に応じてアクションを実行する必要があります。
たとえば、テキスト ファイルに「Hello World」が含まれている場合は、VLC を起動し、Hello World が含まれていない場合は別の操作を実行します。
テキストは自動的に更新されます。
これまでの私のバッチ コードは次のとおりです。テキスト ファイルからテキストを画面に出力できます。
@echo off
for /f "tokens=*" %%a in (log.txt) do call :processline %%a
pause
goto :eof
:processline
echo line=%*
goto :eof
:eof
ベストアンサー1
FIND または FINDSTR のいずれかを使用してください。コマンド プロンプトからHELP FIND
と入力しHELP FINDSTR
てドキュメントを取得します。FIND は非常にシンプルで信頼性があります。FINDSTR ははるかに強力ですが、不安定です。Windows FINDSTR コマンドの文書化されていない機能と制限は何ですか?詳細については。
どちらのコマンドの出力も気にしないので、出力を nul にリダイレクトできます。
どちらのコマンドも、文字列が見つかった場合は ERRORLEVEL を 0 に設定し、文字列が見つからない場合は 1 に設定します。&&
and||
演算子を使用すると、文字列が見つかったかどうかに応じて条件付きでコードを実行できます。
>nul find "Hello World" log.txt && (
echo "Hello World" was found.
) || (
echo "Hello World" was NOT found.
)
>nul findstr /c:"Hello World" log.txt && (
echo "Hello World" was found.
) || (
echo "Hello World" was NOT found.
)
IF ステートメントで ERRORLEVEL をテストすることもできますが、私は上記の構文を好みます。