@ECHO Off
SETLOCAL
PUSHD u:\sourcedir
set "BuildPath=%CD%"
set "DrivePath=%CD:~0,3%"
cd "%BuildPath%\Mac\Data"
IF ERRORLEVEL 1 ECHO fail cd
IF /i "%cd%" neq "%BuildPath%\Mac\Data" echo FAIL&GOTO :EOF
ECHO del * /S /Q
ECHO rmdir /S /Q "%BuildPath%\Mac\Data\"
popd
GOTO :EOF
Примечание: U:\sourcedir
- это мой тестовый каталог.
Если cd
будет успешным, errorlevel
будет 0
, поэтому сообщение fail cd
будет не будет выдано.cd
после того, как изменение будет содержать тот же путь, как указано (я опускаю обратную косую черту).
С другой стороны, если изменение не удастся (каталог не существует), errorlevel
станет1
и будет выдано сообщение fail cd
, а cd
будет не таким, как указано.
Итак, два метода здесь - errorlevel
и compare-directory-name
.Это причина для назначения строк с использованием синтаксиса set "var=value"
, где можно контролировать количество и положение ушей кролика.