Temukan folder tanpa file tertentu di PowerShell

0

Saya memiliki subfolder, dan subfolder. Di sub-subfolder, saya ingin mencari semua subfolder tanpa file bernama PKA.dump. Bisakah ini dilakukan dengan PowerShell?

Subfolder mulai dari Angle1, Angle2, dll hingga Angle24

Sub-subfolder beralih dari 1eV, 2eV, ke 150eV.

Saya dapat menemukan ketika ukurannya kurang dari tertentu:

Get-Childitem -path .  -filter "PKA.dump" -recurse | where {$_.Length -le 500}

Tetapi bagaimana jika mereka tidak ada?

Jackson Hart
sumber
@DeanSpicer Jika saya katakan, lakukan: Test-Path. -termasuk PKA.dump, bagaimana saya bisa mendapatkannya melalui semua subsubfolder dan beri tahu saya yang mana yang Salah?
Jackson Hart

Jawaban:

0

Jika saya memahami Anda dengan benar, sesuatu seperti ini seharusnya berfungsi:

gci -Filter *eV -Directory -Recurse | 
    ? { -not (Test-Path "$($_.FullName)\PKA.dump") } | 
    select FullName

Ini akan menunjukkan path lengkap ke semua folder bernama * eV yang tidak mengandung file PKA.dump. Jika bukan itu yang Anda inginkan, setidaknya itu mungkin memberi Anda beberapa ide.

(Untuk referensi di masa mendatang, untuk jenis pertanyaan ini, Anda harus menunjukkan contoh input dan output yang diharapkan.)

dangph
sumber
0

Tambahkan jalur Anda ke tempat folder Anda berada dan itu akan berfungsi.

$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")
Dean Spicer
sumber