@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 is off/Echo is on 运行时出错,取决于 @echo on 或 @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'在编译后此时是意外的。我想这条线是罪魁祸首 IF NOT [str] == [] set str=%str:~1% 但是如何解决这个问题?