Echo关闭错误或Echo在运行批处理文件时出错

时间:2013-09-19 13:54:53

标签: batch-file cmd

@echo off
set /p str=%1

:MSTART

 set /p ch=%str:~0,1%
 IF '%ch%' == '.' GOTO MEQUAL
 echo %ch%
 goto MEND

 :MEQUAL
call cd..
set /p str=%str:~1%
goto MSTART

:MEND

如果我们将批处理文件作为" mcd ..."运行,则需要输出。它应该回到三个目录。 但它会让Echo关闭/ Echo在运行时出错,取决于@echo或@echo off。 我该如何解决这个问题

这似乎有效

@echo off
set str=%1

:MSTART

set ch=%str:~0,1%
IF '%ch%' == '.' GOTO MEQUAL
goto MEND

:MEQUAL
call cd..
IF NOT [str] == [] set str=%str:~1%
goto MSTART

:MEND

但它给出了错误' 1'在complition之后这个时候出乎意料。我想这一行是罪魁祸首IF NOT [str] == []设置str =%str:~1%但是如何解决这个问题呢?

1 个答案:

答案 0 :(得分:3)

我认为错误来自echo%ch%,因为%ch%为空...所以你显示的是ECHO设置。尝试:

echo(%ch%

echo.%ch%

编辑 将其添加到已发布文件的开头。

@echo off
if "%~1"=="" goto :MEND
set "str=%~1"
相关问题