2010-02-23 4 views
1

큰 드라이브 (600GB에서 1TB)에서 폴더/파일 정보를 수집 할 수있는 스크립트가 필요합니다. 내가 필요로하는 것입니다 정보는 다음과 같습니다 파일 매우 큰 드라이브에서 정보를 꺼내기위한 스크립트

  • 파일 크기
  • 만든 날짜
  • 수정 한 날짜
  • 날짜

    • 이름/경로가 마지막으로 액세스했습니다. , XXX '일 이상'으로 수정 한 날짜가 같다면 '을 검색 할 수 있도록 스크립트를 적용받을 수 있을까요

      dir 'e:\' -recurse | 
          select FullName,Length,CreationTime,LastWriteTime,LastAccessTime | 
          Export-CSV e:\test\testit.csv -notype 
      

      :

    은 지금까지 나는 아래의 코드를 CSV로 다음 출력 데이터 ..

    xxx는 그림이 될 것입니다 - 또한 2 년간 즉, 730 개 이상의 오래된 ..

    - 1 년 또는 그 이상 오래된 .. 나 xxx는 그림이 될 것입니다에 대한 예 (365) 헤더를 수정할 수 있습니까? CSV 파일에 출력하는 열은 무엇입니까? 감사

  • 답변

    2

    질문의 첫 번째의 경우, 동일한 콘텐츠를 다른 이름으로 만 된 항목 (~ 속성의 이름을 변경)을 선택 나는이 가능 .. 헤더를 수정으로

    # fixed date 
    Get-ChildItem c:\temp\ | ? { $_.LastWriteTime -lt [datetime]'2009-02-23' } 
    # variable depending on current date; it returns only items that are older than 365 days 
    Get-ChildItem c:\temp\ | ? { $_.LastWriteTime -lt [datetime]::Now.AddDays(-365) } 
    

    를 사용할 수 있습니다 : 당신은 당신이 원하는대로 할 수있는 스크립트 블록이 있음을

    Select-Object @{Name='ItemName'; Expression={$_.FullName } }, 
         @{Name='Write'; Expression={$_.LastWriteTime } }, 
         @{Name='Access'; Expression={$_.LastAccessTime } } 
    

    참고. 예 : 포맷 날짜 {$_.LastAccessTime.ToString('yyyy-MM-dd') }


    내가 함께 넣어 경우

    Get-ChildItem e:\ -rec | 
        ? { $_.LastWriteTime -lt [datetime]::Now.AddDays(-365) } | 
        Select-Object @{Name='ItemName'; Expression={$_.FullName } }, 
         @{Name='Write'; Expression={$_.LastWriteTime } }, 
         @{Name='Access'; Expression={$_.LastAccessTime } } | 
        Export-Csv e:\test\testit.csv -notype 
    
    +0

    감사 짝짓기 (만 3 곳이 '이름을 변경'이있다)! 그 완벽하게 일한 :) 이제 또 다른 것은 내가 암호화되어있는 몇 가지 문서가있다, 거기에 그 문서를 건너 뛸 수 또는 실제로뿐만 아니라 그들을 통해 갈 수있는 방법이 무엇입니까? 감사합니다. –

    +0

    당신은 환영합니다;) '암호화 된'의미에 따라 다릅니다. – stej

    +0

    직장에서 기본적으로 '내 문서'폴더는 암호화되어있어 파일은 나 자신이나 관리자 만 액세스 할 수 있습니다. –