2017-11-13 2 views
0

약 1000 개의 공유 폴더가 있으며 마지막으로 수정 된시기를 알아야합니다. 따라서 이러한 공유 폴더에는 하위 폴더가 포함되어 있으며 사용자는 해당 하위 폴더의 데이터를 수정할 수 있습니다.폴더 내의 하위 폴더의 수정 날짜를 얻습니다.

상위 폴더의 최종 수정 날짜를 가져올 수 있지만 올바른 데이터를 제공하지 않는 스크립트가 있습니다.

$CSVFilePath = Get-Content "C:\RA\main.txt" 
$outputsss = "C:\RA\output.csv" 
foreach ($fileName in $CSVFilePath) { 
    echo $fileName; 
    if (Test-Path $fileName) { 
     $d = Get-ItemProperty -Path $fileName -Name LastWriteTime 
     $times = $fileName + " - " + $d.LastWriteTime 
     $times 
    } 
    $times | Out-File $outputsss -Encoding utf8 -Append 
    #Get-Content $filename | Out-File $outputsss -Encoding utf8 -Append 
} 

공유 위치의 마지막 수정 날짜/시간을 얻을 수있는 방법이 있습니까?

+0

잘못된 데이터와 예상되는 데이터는 무엇입니까? – Manu

+0

@Manu 예를 들어 10 개의 폴더가 있습니다. 상위 이름은 A이고 다른 하나는 9 개의 폴더가 있고 그 9 개의 폴더에는 더 많은 폴더가있을 수 있습니다. 그들 중 하나가 업데이트되면 어떻게 수정 날짜를 얻을 수 있습니다. 왜냐하면 내가 A의 수정 날짜를 확인하면 정확한 날짜가 표시되지 않기 때문입니다. – Ironic

+0

예상되는 날짜가 표시되지 않을 수도 있지만 정확한 날짜가 표시되지 않을지 의심 스럽습니다. 폴더의 마지막 수정 시간에 대한 업데이트는 재귀 적으로 작동하지 않습니다. [관련] (https://superuser.com/q/147524). [관련 항목] (http://www.nirsoft.net/utils/folder_time_update.html). –

답변

0

여러 번 시도했는데 아래 스크립트가 도움이되었습니다. 아직 실행 중이므로 확인해야합니다.

$CSVFilePath = Get-Content "C:\RA\main.txt" 
$outputsss = "C:\RA\output.csv" 
foreach($fileName in $CSVFilePath) 
{ 
echo $fileName; 
If (Test-Path $fileName) { 

$latest = Get-ChildItem -Recurse -Path $fileName | Sort-Object LastAccessTime -Descending | Select-Object -First 1 
$latest.LastWriteTime 

    #$d = Get-ItemProperty -path $fileName -Name LastWriteTime 
    $times = $fileName + " - " + $latest.LastWriteTime 
$times 
    } 
$times |Out-File $outputsss -Encoding utf8 -append 

} 

나는 누군가에게 가치가 있기를 바랍니다.

관련 문제