私が抱えている問題を説明するために、次のコード行に要約した長いスクリプトがあります。StackOverflow ユーザーからの提案を試してみましたが役に立たなかったので、あなたのフィードバックが私と将来のユーザーに役立つことを願っています。注: このコードは、pdfREP ネストされた変数の設定を除いて機能します。
SETLOCAL が有効な遅延拡張 pdfREP=false を設定 for /f "tokens=1" %%a in ('dir /o /b \\path2document\*.rp?') do ( findstr "," \\path2log\%%a > 1.log エラーレベル 0 でない場合 ( :: 何かをする ) エラーレベル 0 の場合 ( findstr /B /I "p" \\path2document\%%a > 1.log エラーレベル == 0 の場合 ( pdfREP=true を設定 エコー RSP ファイル: %%a >> 2.log ) ) )
基本的に問題は、 \path2document に複数のファイルがあり、それぞれの中でコンマを探すことです。コンマが見つからない場合は、ファイルのテキスト内に特定の文字があるかどうかを知りたい. テキストが見つかった場合、以前に定義された変数を FALSE ではなく TRUE に設定しています。ただし、「if errorlevel == 0」は、異なる構文 (%errorlevel%==0,%errorlevel% EQU 0) の場合に true になる可能性があり、変数 pdfREP を TRUE に設定しません。ループの繰り返しが終わるまで変数が設定されないという問題がある場合、コードの残りの部分でこの変数を使用するにはどうすればよいでしょうか? この変数は後で使用したいので、設定することが最も重要です。フィードバックをお寄せいただきありがとうございます。