저는 powershell을 처음 사용하고 도로 블록을 실행했습니다. 전 스크립트에서 모든 새 파일을 검색하고 (이전 밤 일자) 테스트 폴더에 복사하려고합니다. 이 스크립트는 먼저 모든 SQL BAK 파일이있는 위치에 매핑합니다. 그 다음 일은 이전 밤에 작성된 모든 새 BAK 파일을 검색하여 테스트 폴더에 복사하는 것입니다. 그러나 며칠 전에 한 파일 만 복사하고 있습니다.Powershell -recurese 스크립트가 하위 디렉토리에있는 모든 파일을 검색하지 못했습니다.
$bak_path = "\\nas2\sqlbackups"
get-childitem -path $bak_path -Filter "*.bak" -recurse |
where-object { -not $_.PSIsContainer } |
sort-object -Property $_.CreationTime |
select-object -last 1 | copy-item -Destination I:\test
이 스크립트를 다음과 같이 실행하면 모든 BAK 파일이 반환됩니다. 이것은 필터가 올바르게 작동하고 있음을 나타냅니다. 내가 검색하고 싶지 않은 같은 위치에 다른 파일 (* .log, * .rpt)이 있습니다.
$bak_path = "\\nas2\sqlbackups"
get-childitem -path $bak_path -Filter "*.bak" -recurse
이 스크립트를 변경하면 많은 SQL BAK 파일이있는 폴더를 직접 볼 수 있습니다.
$bak_path = "\\nas2\sqlbackups\SERVER123\Database\FULL"
get-childitem -path $bak_path -Filter "*.bak" |
where-object { -not $_.PSIsContainer } |
sort-object -Property $_.CreationTime |
select-object -last 1 | copy-item -Destination I:\test
그러나 -recurse 옵션을 사용하려고하면 스크립트가 실패합니다.
내가 뭘 잘못하고 있니? 비교
sort-object -Property $_.CreationTime
:
sort-object -Property CreationTime
대신 :
:
에 수정을했고 효과가있었습니다! – user36578
도움 주셔서 감사합니다. – user36578