
나는 사용하고있다r.js빌드 도구로 사용되지만 오늘부터 해당 도구는 빌드 디렉토리에서 빈 폴더를 삭제하는 기능을 제공하지 않습니다. 이 두 스크립트를 찾았습니다
for /f "usebackq" %%d in ("dir /ad/b/s | sort /R") do rd "%%d"
for /f "delims=" %%i in ('dir /s /b /ad ^| sort /r') do rd "%%i">NUL
인터넷을 둘러보지만 난 항상
%%i was unexpected at this time.
또는
%%d was unexpected at this time.
그리고 나는 내 디렉토리가 어디에 있는지 스크립트에 알려주는 방법을 모릅니다.
내 빌드 스크립트는
@echo off
where /q r.js || (
echo requirejs node package is not installed. You must install node, npm and then run npm install -g requirejs
goto :eof
)
node r.js -o app.build.js
:end
내부에 있는 모든 빈 디렉토리를 제거하도록 스크립트에 지시해야 합니다.../../js
답변1
내가 완전히 이해하지 못한 이유로 for
배치 파일 내부와 외부에서 다른 구문을 사용합니다.
이 명령은 배치 파일 내에서 작동해야 합니다.
for /f "delims=" %%i in ('dir /s /b /ad ^| sort /r') do rd "%%i"
명령 프롬프트(배치 파일 없음)에서 다음 %%i
으로 대체해야 합니다 %i
.
for /f "delims=" %i in ('dir /s /b /ad ^| sort /r') do rd "%i"
또한 The directory is not empty.
오류 메시지를 표시하지 않으려면 rd "%i" 2>NUL
.
답변2
첫 번째 스크립트, 즉 아래 스크립트는공백 문자가 있는 디렉토리에서는 작동하지 않습니다..
for /f "usebackq" %%d in ("dir /ad/b/s | sort /R") do rd "%%d"
올바른 버전이 여기에 있어야 합니다. 기본 공백과 탭을 구분 기호로 사용하는 것은 반드시 비활성화되어야 합니다.
for /f "usebackqdelims=" %%d in ("dir /ad/b/s | sort /R") do rd "%%d"
그리고 명령 프롬프트에서 스크립트를 사용하려면 Dennis의 답변(허용되는 답변)을 참조하세요.