배치 파일을 사용하여 하나의 확장명(예: .idf)을 제외한 폴더의 모든 파일을 삭제합니다.

배치 파일을 사용하여 하나의 확장명(예: .idf)을 제외한 폴더의 모든 파일을 삭제합니다.

2일보다 오래된 폴더의 모든 파일을 삭제하는 현재 코드는 다음과 같습니다.

forfiles /p "C:\Test" /s /m *.* /c "cmd /c Del /F /Q @path" /d 2

하나 있다.idf다른 모든 파일 중에서 파일. 하나의 .idf 파일을 제외한 모든 파일을 삭제하고 싶습니다. 현재 코드가 파일을 무시하도록 하려면 무엇을 변경해야 합니까? 가능하지 않은 경우 새로운 명령이 도움이 될 것입니다.

답변1

접근 방식을 조금 개선하려면 다음을 수행하십시오.

  • 오래된 파일만 처리하려면 스위치를 forfiles사용하여 유지하세요 ./d -2
  • 확장자를 가진 파일을 생략하려면 for %Gwith를 사용하세요 .if /I [%~xG] neq [.idf].idf
  • %배치 파일에서 실행하는 경우 모두 두 배 : %%G대신 %G등.
  • @echo디버깅보다 빨리 제거하십시오 .

명령:

forfiles /p "C:\Test" /s /m *.* /c "cmd /c for %G in (@path) do @if /I [%~xG] neq [.idf] @echo del /F /Q %G" /d -2

자원(필수 읽기):

관련 정보