locked
오래된 폴더 자동 지우는 방법문의 RRS feed

  • 질문

  • forfiles 이 명령어 로 오래된 파일을 지우는 배치 파일은 만들수 있었습니다 

    forfiles /p "c:\temp" /s /m *.* /d -7 /c "cmd /c del @path" 예로 이렇게 하면 되더군요 

    근데 같이 자동 생성되어지는 로그폴더 들도 30일 정도 지난것들은 지우고 싶은데 폴더 지우는 명령어 가 아예 없는건지 제가 잘못하는건지 

    forfiles /p "c:\temp" /s /m *.* /d -7 /c "cmd /c @rmdir /s /q @path" 위와 같이 하면 

    디렉토리 이름이 올바르지 않다고  메세지 출력하면서 하위폴더 들이 지워지지 않습니다 

    도움을 바랍니다 

    2015년 8월 11일 화요일 오전 7:56

답변

  •  혹시 폴더 이름들이 한글로 되어 있지 않은지요..

     커맨드 상으로 핸드링 할때는 폴더명이 과거 도스 디렉토리 규칙에 맞춘 디렉토리명이면 잘 먹히는데...

     파워셀로 해보세요
     파워셀은 스크립트 보다는 조금 구조화 되어 있으므로 소스를 편집하기도 좋고
     쓰기도 편할 겁니다.

     # Delete all Files in C:\temp older than 30 day(s)
    $Path = "C:\temp"
    $Daysback = "-30"
     
    $CurrentDate = Get-Date
    $DatetoDelete = $CurrentDate.AddDays($Daysback)
    Get-ChildItem $Path -Recurse ( | Where-Object { $_.LastWriteTime -lt $DatetoDelete } | Remove-Item
    • 답변으로 표시됨 SMPark82 2015년 10월 13일 화요일 오전 12:58
    2015년 10월 4일 일요일 오전 4:53