在powershell中尋找沒有特定檔案的資料夾

在powershell中尋找沒有特定檔案的資料夾

我有子資料夾和子子資料夾。在子子資料夾中,我想尋找沒有名為 PKA.dump 的檔案的所有子資料夾。這可以在 powershell 中完成嗎?

子資料夾從 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

這將顯示所有名為 *eV 且不包含 PKA.dump 檔案的資料夾的完整路徑。如果這不是您想要的,那麼至少它可能會給您一些想法。

(為了將來的參考,對於這些類型的問題,您應該顯示範例輸入和預期輸出。)

答案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")

相關內容