Get-ChildItem은 어떻게 결과가 없음(파일 0개)에 대해 테스트할 수 있습니까?
저는 단순한 문제인 것처럼 보이는 것에 대해 여기서 당황스럽습니다. 여기 있는 완고한 사람들에게 미안합니다.
없어진 백업 파일을 정리하는 스크립트가 있습니다.파일을 식별한 후에 저는 루프오버하여 덤프된 내용을 출력합니다.없어진 파일이 없을 때 피드백/테스트를 제공하는 데 문제가 발생합니다.대본은...
$Files = Get-ChildItem $BackupPath_Root -include *.bak -recurse
| where {$_.CreationTime -le $DelDate_Backup }
if ( $Files -eq "" -or $Files.Count -eq 0 ) {
write-host " no files to delete." #<-- this doesn't print when no files
} else {
foreach ($File in $Files) {
write-host “$File”
Remove-Item $File | out-null
}
}
파일이 없는 경우 if 검사에서 파일이 없는 상태가 발생하지 않습니다.적절한 테스트 방법은 무엇입니까?$Files
아무 결과도 없이?
포장해 보세요.@(..)
항상 배열을 만듭니다.
$Files = @(Get-ChildItem $BackupPath_Root -include *.bak -recurse
| where {$_.CreationTime -le $DelDate_Backup })
if ($Files.length -eq 0) {
write-host " no files to delete."
} else {
..
}
파일이 없는 경우 $Files는 $null과 같으므로 EBGreen에서 제안한 대로 $null과 비교하여 테스트해야 합니다.또한 $Files.개수는 결과가 파일 모음일 때만 유용합니다.결과가 스칼라(하나의 개체)이면 카운트 속성이 없고 비교가 실패합니다.
성능 팁: 하나의 확장 유형만 검색해야 하는 경우 공급자 수준에서 필터링할 때 -Include 대신 -Filter 매개 변수를 사용합니다.
검색된 폴더가 비어 있으면 변수가 null 값 식으로 평가됩니다.사용할 수 있는 항목:
if (!$Files) {
# ...
}
$files - eq $null도 테스트해 보십시오.
get-childitem 명령 앞에 [bool] 유형을 지정하면 발견된 항목이 있으면 True를 반환하고, 발견된 항목이 없으면 false를 반환합니다.이것이 에밀리아노의 대답이지만 부정적인 요구는 없습니다.둘 중 하나라도 작동할 수 있지만, 저는 좀 더 쉽게 따라할 수 있도록 좀 더 복잡한 조건문이 있는 [bool]을 선호합니다.
[bool](Get-ChildItem C:\foo.txt)
If 문에 사용됨
if ([bool](Get-ChildItem C:\foo.txt)) {write-output "foo.txt exists"}
언급URL : https://stackoverflow.com/questions/6859956/how-can-get-childitem-be-tested-for-no-results-zero-files
'programing' 카테고리의 다른 글
Python을 사용하여 미니돔으로 요소 값 가져오기 (0) | 2023.08.26 |
---|---|
스크립트 태그에서 온로드 이벤트를 실행하려고 합니다. (0) | 2023.08.26 |
jquery 호버 이벤트 지연? (0) | 2023.08.26 |
JQuery를 사용하여 Div에서 CSS 제거 (0) | 2023.08.26 |
FOR UPDATE OF와 FOR UPDATE의 차이 (0) | 2023.08.26 |