하위 폴더와 하위 폴더가 있습니다. 하위 폴더에서 PKA.dump라는 파일이 없는 모든 하위 폴더를 찾고 싶습니다. 파워쉘에서 할 수 있나요?
하위 폴더는 Angle1, Angle2 등에서 Angle24까지 이동합니다.
하위 폴더는 1eV, 2eV에서 150eV까지입니다.
특정 크기보다 작은 경우를 찾을 수 있습니다.
Get-Childitem -path . -filter "PKA.dump" -recurse | where {$_.Length -le 500}
하지만 만약 그것들이 존재하지 않는다면 어떻게 될까요?
답변1
내가 당신을 올바르게 이해했다면 다음과 같이 작동해야합니다.
gci -Filter *eV -Directory -Recurse |
? { -not (Test-Path "$($_.FullName)\PKA.dump") } |
select FullName
그러면 PKA.dump 파일이 포함되지 않은 *eV라는 이름의 모든 폴더에 대한 전체 경로가 표시됩니다. 그것이 당신이 원하는 것이 아니라면 적어도 몇 가지 아이디어를 얻을 수 있을 것입니다.
(나중에 참고할 수 있도록 이러한 유형의 질문에 대해서는 입력 예시와 예상 출력을 표시해야 합니다.)
답변2
폴더가 있는 위치에 경로를 추가하면 작동합니다.
$path = " "; # ADD YOUR PATH TO FOLDER HERE
$all_loc = Get-ChildItem -Recurse $path -Include "ev*" #Only looks where ev* exists
foreach ($x in $all_loc){ # look through all "ev*" subsubfolders
$z = (Join-Path $x.FullName "PKA.dump") # variable to hold file name to search
$test = Test-Path "$z" -PathType leaf;
if ($test -eq 0){
echo "$x does not contain PKA.dump";
## Uncomment below to create empty PKA.dump file
#New-Item $z -type file
}
}
## uncomment below to pause before closing
#$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")