3

現在、ユーザーがコマンド プロンプトを操作できるようにする必要がある、より大きなバッチ ファイルのセグメントを作成していますが、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 変数をコマンド プロンプトに渡し、このエラーが発生しないようにする方法はありますか?

4

1 に答える 1