Buscar carpeta sin cierto archivo en powershell

Buscar carpeta sin cierto archivo en powershell

Tengo subcarpetas y subsubcarpetas. En las subsubcarpetas, quiero encontrar todas las subcarpetas sin un archivo llamado PKA.dump. ¿Se puede hacer esto en powershell?

Las subcarpetas van desde Angle1, Angle2, etc hasta Angle24

Las subsubcarpetas van desde 1eV, 2eV hasta 150eV.

Puedo encontrar cuando son menores que un cierto tamaño:

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

¿Pero qué pasa si no existen?

Respuesta1

Si te he entendido correctamente, algo como esto debería funcionar:

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

Esto mostrará la ruta completa a todas las carpetas denominadas *eV que no contienen un archivo PKA.dump. Si eso no es lo que querías, al menos podría darte algunas ideas.

(Para referencia futura, para este tipo de preguntas, debe mostrar ejemplos de entradas y salidas esperadas).

Respuesta2

Agregue su ruta a donde está su carpeta y debería funcionar.

$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")

información relacionada