문제

다음 스크립트는 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 가지 질문이 있습니다.

  1. 무엇인가요 -lt 그리고 무엇입니까 -le 그리고 무엇입니까 -gt? 언제 각각을 사용합니까?
  2. 위의 스크립트는 파일 만 삭제합니다 ... 폴더도 어떻게 삭제할 수 있습니까?
  3. 위의 스크립트는 기반입니다 LastWriteTime .. 는 어때 CreatedDate 또는 LastAccessed 시각?
도움이 되었습니까?

해결책

좋아, 여기 우리는 간다 :

  1. -lt, -le 및 -gt는 비교 연산자입니다. LT는 LE를 의미하며 LE는 평균보다 적거나 평등하며 GT는보다 큰 평균을 의미합니다.

  2. 폴더를 제거하면 폴더가 내부에 들어가는 것을 제어하지 않으면 위험해질 수 있습니다. 문제가있을 수 있으며 데이터 손실을 알고 있습니다. 옵션을 사용하여 동일한 remove-item cmdlet을 사용하여 폴더를 삭제할 수 있습니다. 이 기사를 확인하십시오. 달성하는 방법에 대한 훌륭한 지침이 있습니다.http://searchwindowsserver.techtarget.com/generic/0,295582,SID68_GCI1275887,00.html

  3. 일반적으로 잠시 동안 앉아있는 파일의 경우 LastWriteTime 및 CreatedDate 및 LastAccessTime이 동일합니다. DLL과 같은 읽기 전용 파일에서 LastAccessTime은 다른 두 가지보다 새로울 수 있습니다. 읽기/쓰기 파일에서 (Outlook의 PST 파일과 같은) WriteTime 및 AccessTime은 동일 할 수 있습니다. 기본적으로 그것은 전적으로 당신에게 달려 있습니다. 그들은 LastWriteTime과 같은 방식으로 일합니다. 삭제하려는 파일의 특성을 고려하고 계속하십시오!

다른 팁

-lt -le 및 -gt는 <, <=,> 대신 비교 연산자입니다. 유형 "_comparison_operators에 대한 도움말"PowerShell 명령에서 각 유형에 대한 세부 사항과 다른 언어에서 익숙한 것 대신에 이들을 사용하는 이유에 대한 프롬프트에서.

폴더를 삭제하려면 제거해야합니다. ! $. psiscontainer 및 WHERE 필터의 일부. 이것은 디렉토리 인 목록에서 모든 항목을 제거합니다.

"생성 된 데이트 또는 마지막으로 계산 된 시간에 대해 어떻게"라는 질문으로 당신이 무엇인지 잘 모르겠지만,이 속성을 마지막으로 마지막으로 비슷한 방식으로 사용할 수는 있지만 달성하려는 논리를 결정해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top