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?



@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.)


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")
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.