次のコマンドを使用して、テキスト ファイルの最後の行を抽出しました。
for /f "tokens=*" %%m in (message_log.txt) do (
Set lastline=%%m
)
私の目標は、変数%lastline%=="☺§☻PDF
ファイルが中止されたかどうかです。次に、1 つの出力を表示し、そうでない場合は終了します。でも、最初の 3 人のキャラクターはめちゃくちゃだと思います。私はこれを試しています:
for /F "tokens=1-5 delims= " %%a in (%lastline%) do (
if %%e==aborted. (
echo pdf not filed
)
Pause
しかし、ファイルは一時停止も出力もせずに終了します。
%lastline%
最初の for ループで行ったようにファイルを参照する代わりに、これを機能させることができますが、変数で機能させることはできません。
FOR ループを使用して事前定義された変数内を検索する正しい構文は何ですか?
より単純な場合、私の最終的な目標は、テキスト ファイルの最終行に文字列 "abort" が含まれている場合にエラー メッセージをエコーすることです。これを行うためのより良い方法はありますか?
あなたの最初のアプローチは問題ありません。チェックが抜けているだけです。
for /f "delims=" %%m in (message_log.txt) do Set lastline=%%m
If "%lastline%" neq "%lastline:abort=%" ^
Echo error message the last line in message_log.txt contains the string "abort"
findstr で
for /f "delims=" %%m in (message_log.txt) do Set lastline=%%m
Echo %lastline%|Findstr /i "abort" 2>&1 >Nul && ^
Echo error message the last line in message_log.txt contains the string "abort"
Gnuwin32 ツールがインストールされている場合
tail -n 1 message_log.txt|grep "abort" >NUL && ^
Echo error message the last line in message_log.txt contains the string "abort"
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加