現在、ユーザーがコマンド プロンプトを操作できるようにする必要がある、より大きなバッチ ファイルのセグメントを作成していますが、IF ステートメントに問題があるようです。
次のコードは、私が試してきたものです。
:ONE2
cls
echo Free Roam is used like command prompt, but with additional commands.
echo Type FRHELP for a list of additional commands.
:COMMANDLOOP
echo.
set /P TEMPCMD=%CD% :
IF %TEMPCMD% == QUIT (
GOTO END2
) else if %TEMPCMD% == FRHELP (
GOTO COMMANDSLIST
) else (
%TEMPCMD%
GOTO COMMANDLOOP
)
:COMMANDSLIST
echo.
echo FRHELP = Display Free Roam Commands
echo QUIT = Leave your current Free Roam Session
GOTO COMMANDLOOP
何が起こるかというと、IF ステートメントなしでマルチパート コマンド (例: cd ..) を作成できます。しかし、IF ステートメントを使用すると、単一パートのコマンド (例: dir) しか作成できなくなります。
上記の IF ステートメントがある場合、「'..' は予期しないものでした」というエラーが表示され、終了します。
これらの IF ステートメントを使用して TEMPCMD 変数をコマンド プロンプトに渡し、このエラーが発生しないようにする方法はありますか?