のために使用して変数内のコマンドを実行しているので、私は、バッチファイル内のテキストファイルバッチ;
(
set /p var1=
set /p var2=
set /p var3=
)<oi.txt
から保存されたいくつかのVARSを持っているし、if文、彼らは表しています。私が実行した場合
% VAR1%それは、しかし、それは
`if` is not recognized as an internal or external command
`if` is not recognized as an internal or external command
`if` is not recognized as an internal or external command
を返し、それがあれば動作します私は(SETLOCAL enabledelayedexpansionに)
for /l %%i in (1,1,3) do !var%%i!
実行しかしとき、if文を実行しますそれはマイクロソフトの監視ですか?このオプションを持たないという代償で別のバグを修正するものでしょうか?
*これはforコマンドとは関係ありません。!var%number%! if文を内部に持つvar1で、同じ問題が返されます。 (また、var内のif文が正しいことを100%確信していますが、それが間違っていてもなぜ認識されないのですか)
ので、あなたがoi.txt' 'でいくつかのコマンドがありますか?彼らは何ですか? – npocmaka
@npocmaka問題は、 'set" var = echo hi "'に続いて '!var!'が動作するが 'set" var = if 1 equ 1 echo true "'に続いて '!var!'代わりに ''が '...と認識されない場合は ''エラーメッセージを生成します。 – treintje
'oi.txt'の内容を投稿してください!とにかく、 'if'と' for'(と 'rem')のコマンドはコマンドインタープリタによって特別に扱われますが、遅延拡張が処理される前に認識されています。このスレッドを参考にしてください:[Windows Command Interpreter(CMD.EXE)はどのようにスクリプトを解析しますか?](https://stackoverflow.com/q/4094699) – aschipfl