0

ディレクトリのパスを前に設定するか、デフォルトからパスの後ろに追加するバッチファイルを作成しようとしています。ディレクトリを先頭に配置するには、/f または /F を配置し、背面に追加するには、/f または /F を含めません。サンプル ディレクトリを使用するたびに、先頭に /f を使用するか、または使用しないと、それが前面に配置されます。修正を手伝ってください。ありがとう。

@ECHO OFF
ECHO Press Y or y for an explanation on how to use this file.
ECHO Press N or n to continue without help.
REPLY64
:TOP
IF "%1"=="" GOTO DEFAULT
IF NOT "%1"=="" GOTO ADD
IF NOT "%1"=="" GOTO ADD
IF "%1"=="/f" GOTO FRONT
IF "%1"=="/F" GOTO FRONT
IF ERRORLEVEL 121 GOTO F1
IF ERRORLEVEL 110 GOTO TOP
IF ERRORLEVEL 89 GOTO F1
IF ERRORLEVEL 78 GOTO TOP
:F1
ECHO SETPATH /F subdirectory1 subdirectory 2 or SETPATH /f subdirectory1   subdirectory 2.
ECHO The /F or /f tells the batch file to add the subdirectory name in front of the existing path.
ECHO If the command is keyed in without /F or /f, each subdirectory will be added to the end.
GOTO END
:ADD
IF "%1"=="" GOTO END
PATH= %PATH%;%1
SHIFT
GOTO ADD
:FRONT
SHIFT
IF "%1"=="" GOTO END
PATH=%1;%PATH%
GOTO FRONT
:DEFAULT
CALL \MYPATH.BAT
:END
4

3 に答える 3

1

私はこの質問の頭も尻尾も作ることができません。

なにreply64?表示なし。おそらくそれはerrorlevel何かに設定されます。

次に、次の 3 行を見てみましょう。

IF "%1"=="" GOTO DEFAULT
IF NOT "%1"=="" GOTO ADD
IF NOT "%1"=="" GOTO ADD

ここで - 最初のパラメータが存在しない場合は、に進み:defaultます。罰金。しかし、それは何をしますか?CALL c:\mypath.bat-どれが何ですか?このファイル?そうであると仮定すると、パラメータなしでバッチが再実行されます。

そして、最初のパラメーターが存在するとしますか? 次の 2 行は同一であるため、次の行に移動する必要があります- これは、(行の先頭 - コーディングによって暗示されるように) ではなく、行の (最後) にADDパラメータを追加する必要があります。に追加されました。ここに投稿した内容を考えると、そのコードに到達することはできません。BACKFRONTfront

于 2013-05-08T07:21:43.387 に答える
0
IF NOT "%1"=="" GOTO ADD
IF NOT "%1"=="" GOTO ADD
IF "%1"=="/f" GOTO FRONT
IF "%1"=="/F" GOTO FRONT

これらの最初の 2 つには、 and も含まれている必要が/Fあり/fます。そうでなければ意味がありません。

errorlevelさらに、チェックを引数チェックの前に移動する必要があります。

于 2013-05-07T22:00:36.017 に答える
0

これはあなたが説明したことを行います。/f を使用すると、パスの先頭に %2 が追加されます。それ以外の場合は、パスの末尾に %1 が追加されます。

@echo off
if /i "%~1"=="/f" (
set path=%~2;%path%
) else (
set path=%path%;%~1
)
于 2013-05-08T09:01:57.737 に答える