PowerShell 스크립트는 이전 파일을 삭제합니다
-
06-07-2019 - |
문제
다음 스크립트는 14 일 이하인 명명 된 디렉토리에서 파일을 삭제하고 .txt
경로와 파일이 삭제 된 상태에서 (다른 포럼 에서이 스크립트를 찾았습니다.
dir c:\tmp -recurse | where {!$_.PsIsContainer -AND $_.lastWriteTime -lt (Get-Date).AddDays(-14) } | select LastWriteTime,@{n="Path";e={convert-path $_.PSPath}} | tee c:\oldFiles.txt | Remove-Item -force -whatif
3 가지 질문이 있습니다.
- 무엇인가요
-lt
그리고 무엇입니까-le
그리고 무엇입니까-gt
? 언제 각각을 사용합니까? - 위의 스크립트는 파일 만 삭제합니다 ... 폴더도 어떻게 삭제할 수 있습니까?
- 위의 스크립트는 기반입니다
LastWriteTime
.. 는 어때CreatedDate
또는LastAccessed
시각?
해결책
좋아, 여기 우리는 간다 :
-lt, -le 및 -gt는 비교 연산자입니다. LT는 LE를 의미하며 LE는 평균보다 적거나 평등하며 GT는보다 큰 평균을 의미합니다.
폴더를 제거하면 폴더가 내부에 들어가는 것을 제어하지 않으면 위험해질 수 있습니다. 문제가있을 수 있으며 데이터 손실을 알고 있습니다. 옵션을 사용하여 동일한 remove-item cmdlet을 사용하여 폴더를 삭제할 수 있습니다. 이 기사를 확인하십시오. 달성하는 방법에 대한 훌륭한 지침이 있습니다.http://searchwindowsserver.techtarget.com/generic/0,295582,SID68_GCI1275887,00.html
일반적으로 잠시 동안 앉아있는 파일의 경우 LastWriteTime 및 CreatedDate 및 LastAccessTime이 동일합니다. DLL과 같은 읽기 전용 파일에서 LastAccessTime은 다른 두 가지보다 새로울 수 있습니다. 읽기/쓰기 파일에서 (Outlook의 PST 파일과 같은) WriteTime 및 AccessTime은 동일 할 수 있습니다. 기본적으로 그것은 전적으로 당신에게 달려 있습니다. 그들은 LastWriteTime과 같은 방식으로 일합니다. 삭제하려는 파일의 특성을 고려하고 계속하십시오!
다른 팁
-lt -le 및 -gt는 <, <=,> 대신 비교 연산자입니다. 유형 "_comparison_operators에 대한 도움말"PowerShell 명령에서 각 유형에 대한 세부 사항과 다른 언어에서 익숙한 것 대신에 이들을 사용하는 이유에 대한 프롬프트에서.
폴더를 삭제하려면 제거해야합니다. ! $. psiscontainer 및 WHERE 필터의 일부. 이것은 디렉토리 인 목록에서 모든 항목을 제거합니다.
"생성 된 데이트 또는 마지막으로 계산 된 시간에 대해 어떻게"라는 질문으로 당신이 무엇인지 잘 모르겠지만,이 속성을 마지막으로 마지막으로 비슷한 방식으로 사용할 수는 있지만 달성하려는 논리를 결정해야합니다.