Cmd 路径批处理文件Windows命令行

Cmd 路径批处理文件Windows命令行,cmd,Cmd,我正在尝试创建一个批处理文件,该文件在前面设置目录的路径,或者将其从默认路径添加到路径的后面。如果要将目录放在前面,可以将其放在a/f或/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

我正在尝试创建一个批处理文件,该文件在前面设置目录的路径,或者将其从默认路径添加到路径的后面。如果要将目录放在前面,可以将其放在a/f或/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
前两个也应该包含
/F
/F
。否则就没有意义了


此外,您应该在参数检查之前将
errorlevel
检查移动到。

我不能理解这个问题的头尾

什么是
回复64
?没有迹象。也许它将
errorlevel
设置为某个值

然后让我们看一下这三行:

IF "%1"=="" GOTO DEFAULT
IF NOT "%1"=="" GOTO ADD
IF NOT "%1"=="" GOTO ADD
现在-如果第一个参数不存在,请转到
:default
。好的但那有什么用呢<代码>调用c:\mypath.bat-哪个是什么?这个文件?假设是,那么它将在没有参数的情况下重新执行批处理


假设第一个参数存在?接下来的两行是相同的,因此应该转到
ADD
——该行应该在
行的后面(末尾)添加参数,而不是
行的前面(行首-如编码所示)。但是报告显示该参数是在
前面添加的。考虑到我们在这里发布的内容,它无法到达该代码。

这将完成您描述的内容。如果使用/f,则会将%2添加到路径的前面,否则会将%1添加到路径的末尾

@echo off
if /i "%~1"=="/f" (
set path=%~2;%path%
) else (
set path=%path%;%~1
)

代码应该把所有目录放在后面,而不是前面。您可能需要检查并调整问题中的措辞。
@echo off
if /i "%~1"=="/f" (
set path=%~2;%path%
) else (
set path=%path%;%~1
)