[파워쉘]특정날짜 지난 폴더(하위폴더 포함) 삭제# Script/Powershell2016. 12. 21. 14:28
Table of Contents
728x90
반응형
1. 현재날짜보다 3일이전 날짜를 변수로 저장
$deleteday = (get-date).adddays(-3).tostring("yyyyMMdd")
2. 정리할 폴더 위치를 변수 저장
$deletedir = "C:\templog"
3. 현재 날짜를 기준으로 지정된 날짜 전에 폴더를 삭제
get-childitem -path $deletedir| where-object {$_.name -le $deleteday} | remove-item -recurse -force
단, 파일명이 길경우는 위와 같이 진행시 오류가 발생합니다 ㅜ_ㅜ
4. delete_folder.ps1파일로 저장
$del_dir = get-childitem -path $deletedir| where-object {$_.name -le $deleteday}
$i=0
for($i=0;$i -lt $del_dir.count;$i++){
if($del_dir.count -eq 1) {
new-item -path $deletedir -itemtype directory -name temp_dir
robocopy $deletedir\temp_dir $deletedir"\"$del_dir /s /mir
rmdir $deletedir\temp_dir
rmdir $deletedir"\"$del_dir
}
else {
$del_dir2 = $del_dir.get($i)
new-item -path $deletedir -itemtype directory -name temp_dir
robocopy $deletedir\temp_dir $deletedir"\"$del_dir2 /s /mir
rmdir $deletedir\temp_dir
rmdir $deletedir"\"$del_dir2
}
}
5. 스크립트 실행 권한을 줘야하기 때문에 아래와 같이 vbs로 실행하게끔 delete_folder.vbs 파일 생성
ps="powershell.exe -nologo -command " & Chr(34) & "delete_folder.ps1" & Chr(34)
set shell=createobject("WScript.Shell")
shell.Run ps,0,true
6. 작업스케줄에 원하시는 시간대에 실행되게끔 설정하면 끝.
schtasks.exe /create /sc daily /tn test /tr c:\delete_folder.vbs /st 12:00
해석 : 메일 오후12에 계산시실행. 작업명은 test
728x90
반응형
'# Script > Powershell' 카테고리의 다른 글
[파워쉘]파일 마지막 쓰기한 날짜변경 (0) | 2017.03.05 |
---|---|
[파워쉘]VBS로 파워쉘 실행 (0) | 2017.03.05 |
[파워쉘]파일내 특정문자열 치환 (0) | 2016.03.15 |
[파워쉘]IIS웹사이트 추출 (0) | 2016.02.24 |
[파워쉘]로컬계정 활성화 및 비활성화 (0) | 2016.01.05 |
@다크쉐라빔 :: 다크쉐라빔의 주절주절
안녕하세요. 이곳은 IT위주의 잡다한 정보를 올려두는 개인 블로그입니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!