서버에서는 powershell을 스크립트로 많이 사용 하지만, 권한문제등으로 쉬운 작업도 힘들게 해야 하는 경우가 많다.
특히 간단한 삭제 작업임에도 불구하고 스케쥴러를 사용함에 있어서 피곤하게 하는 경우도 많다.
이때 CMD를 사용해 쉽고 간단하게 삭제 가능한 스크립트가 있어 여기 가져왔다.
forfiles /p "c:\temp" /s /d -30 /c "cmd /c @rmdir /s /q @path"
c:\temp에서 30일이 지난 파일 및 폴더 삭제
forfiles /p "c:\temp" /s /m *.txt /d -30 /c "cmd /c @echo @file"
c:\temp에서 30일이 지난 txt 파일 목록 보여주기
매개 변수 목록:
/p 검색을 시작할 경로를 지정함. 지정하지 않았을 경우 cmd 파일의 위치를 기준으로 한다.
/m 검색 할 파일을 지정한다.
기본값은 * 이고, *.txt(txt확장자만 검색) 나 dns*.*(이름앞에 DNS가 있는 모든파일)과 같은 방식으로 사용 할 수 있다.
/s 폴더를 포함하도록 지정한다.
/d 날짜 지정. 수정한 시점을 기준으로 한다. 지나간 파일의 삭제는 ( - ) 를 입력하고 앞선 날짜는 ( + ) 를 입력한다.
날짜 형식은 "yyyy-MM-dd" 이지만 "dd" 만 입력해도 된다. 부호 입력이 없다면 기본값은 ( + ) 이다.
/c 수행 할 명령을 지정한다. 기본 명령은 "cmd /c echo @file" 이다.
명령 문자열에는 아래 변수를 사용할 수 있다.
@fname - 확장자 없이 파일 변환
@ext - 확장자만 출력
@path - 파일의 전체 경로 반환
@relpath - 상대 경로 반환
@isdir - 지정한 대상이 디렉터리면 "TRUE"를, 파일이면 "FALSE"를 반환
@fsize - 파일의 크기 반환
@ftime - 파일의 마지막 수정 시간은 반환
명령줄에서 특수 문자를 사용해야 하는 경우 0xHH 형식의 16진수 코드(ex: 탭은 0x09)를 사용해야 함
'Windows' 카테고리의 다른 글
Windows 7 스티커 메모를 Windows 10 에서 복구하는 방법 (0) | 2021.04.21 |
---|---|
고장난 Exchange 2013 서버의 Database 복구 및 PST로 추출 하기 (0) | 2021.04.21 |
windows 확장자 연결 문제 해결 (0) | 2017.11.01 |
Powershell 출력에서 말줄임표 (...) 없애기 (0) | 2015.12.06 |
apache 2.2와 PHP5.3, Tomcat 7.0 Windows에서 연동하기 - 2 (0) | 2014.08.10 |