@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%但是如何解决这个问题呢?
答案 0 :(得分:3)
我认为错误来自echo%ch%,因为%ch%为空...所以你显示的是ECHO设置。尝试:
echo(%ch%
或
echo.%ch%
编辑 将其添加到已发布文件的开头。
@echo off
if "%~1"=="" goto :MEND
set "str=%~1"