У меня есть подпапки и подпапки. В подпапках я хочу найти все подпапки без файла с именем PKA.dump. Можно ли это сделать в powershell?

Подпапки идут от Angle1, Angle2 и т.д. До Angle24

Подпапки идут от 1 эВ, 2 эВ до 150 эВ.

Я могу найти, когда они меньше определенного размера:

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

Но что, если они не существуют?

2 ответа2

0

Добавьте свой путь к папке, где находится ваша папка, и она должна работать.

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

Если я вас правильно понял, что-то вроде этого должно работать:

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

Это покажет полный путь ко всем папкам с именем * eV, которые не содержат файл PKA.dump. Если это не то, что вы хотели, то, по крайней мере, это может дать вам некоторые идеи.

(Для дальнейшего использования, для вопросов такого типа вы должны показать пример входных данных и ожидаемых результатов.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .