路径批处理文件Windows命令行

时间:2013-05-07 21:55:03

标签: cmd

我正在尝试创建一个批处理文件,用于设置前面目录的路径,或者将其添加到默认路径的后面。要将目录放在前面,你放一个/ 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

3 个答案:

答案 0 :(得分:1)

我既不能使这个问题没有头脑。

Waht是reply64?没有迹象。也许它将errorlevel设置为某种东西。

然后让我们看看这三行:

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

现在 - 如果第一个参数不存在,请转到:default。精细。但这又是什么呢? CALL c:\mypath.bat - 这是什么?这个文件?假设它是,那么将重新执行没有参数的批处理。

假设第一个参数存在?接下来的两行是相同的,因此应该转到ADD - 这应该在行的BACK(结尾)添加参数,而不是FRONT(行的开头 - 作为编码暗示。)然而,报告是参数正在front添加。鉴于我们在此处发布的内容,它无法达到该代码。

答案 1 :(得分:0)

IF NOT "%1"=="" GOTO ADD
IF NOT "%1"=="" GOTO ADD
IF "%1"=="/f" GOTO FRONT
IF "%1"=="/F" GOTO FRONT

前两个也应该包含/F/f。否则没有意义。

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

答案 2 :(得分:0)

这将按照您的描述进行。如果使用/ f,它会将%2添加到路径的前面,否则它会将%1添加到路径的末尾。

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