폴더의 "수정 날짜"변경 (powershell에서 가능)


0

때때로 Windows Server 2003 컴퓨터를 강제 종료하면 (선택할 수 없음) 특정 디렉토리에 포함 된 폴더가 모두 '수정 된 날짜'를 현재 날짜로 변경합니다.

운 좋게도 이러한 각 폴더 안에 파일이 모두 올바른 '수정 날짜'를 갖습니다.

"수정 된 (또는 생성 된) 날짜"를 복사하려는 이러한 파일 중 하나는 각 폴더에있는 .jdf 파일입니다.

PowerSell에서 스크립트를 작성하는 데 도움이 필요합니다.

나는 거의 일을하는이 PS1 스크립트를 발견했다.

Get-ChildItem $root | Where-Object {$_.PSIsContainer} | Foreach-Object{

# get the oldest file for the current directory object
$oldest = Get-ChildItem $_.FullName | Sort-Object LastWriteTime | Select-Object LastWriteTime -Last 1

if($oldest)
{
# oldest object found, set current directory LastWriteTime
$_ | Set-ItemProperty -Name CreationTime -Value $oldest.LastWriteTime 
$_ | Set-ItemProperty -Name LastWriteTime -Value $oldest.LastWriteTime
}
else
{
# current directory is empty, directory LastWriteTime is left unchanged
Write-Warning "Directory '$($_.FullName)' is empty, skiping..."
}
}

문제는 폴더 내에서 마지막으로 수정 된 개체가 때때로 현재 날짜를 '수정 된 날짜'로 가져 오는 하위 폴더라는 것입니다. 폴더가 아닌 폴더 내부의 파일을 어떻게 볼 수 있습니까?


당신의 목표는 저에게 다소 불분명합니다. 원하는 스크립트가 정확히 어떤 영향을 미칩니 까? (댓글을 달지 말고 질문을 편집 하십시오.) 그러나 NTFS특정 폴더의 날짜 및 시간 소인은 오브젝트 (파일 또는 폴더)를 작성하거나 삭제할 때마다 변경됩니다.
JosefZ 2016 년

@JosefZ : 방금 스크립트를 추가하여 게시물을 편집했습니다. 나는 그것이 더 명확 해지기를 바랍니다. 고마워
poupou 2016 년

답변:


0

반면 Get-ChildItem $root -directory에 동일한 결과를 제공하는 반면

Get-ChildItem $root | Where-Object {$_.PSIsContainer}

시도해 볼 수 있습니다 ( PS자세한 구문을 모르겠습니다 )

Get-ChildItem $root -file

또는

gci $root -file

스크립트 나머지 부분에 개선이 필요한지 확실하지 않습니다 ...


"-directory"를 추가하려고하면 오류가 발생합니다. Get-ChildItem : 'directory'매개 변수 이름과 일치하는 매개 변수를 찾을 수 없습니다. 1 행 : char : 31 + Get-ChildItem $ root -directory <<<< | Where-Object {$ _. PSIsContainer} | Foreach-Object {
poupou 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.