PowerShell, эквивалентный из LINQ Кто-либо ()?

hackish путь, но можно попытаться поместить регистрирующийся код в admin.py. Это, как предполагается, импортируется только однажды.

, Кроме того; можно ли сначала проверить, существует ли MyApp.views.scans журнал? Если это существует (возможно, ошибка повышена), можно просто пропустить создание (и поэтому не добавить обработчик снова). Более чистый путь, но я не попробовал это все же.

Также должно быть более соответствующее место для помещения этого кода (__init__.py?). settings.py для настроек.

40
задан Peter Mortensen 30 December 2018 в 11:37
поделиться

4 ответа

К сожалению, в PowerShell нет эквивалента. Я написал об этом сообщение в блоге с предложением для универсальной функции / фильтра Test-Any.

function Test-Any() {
    begin {
        $any = $false
    }
    process {
        $any = $true
    }
    end {
        $any
    }
}

Сообщение в блоге: Есть ли что-нибудь в этом конвейере?

22
ответ дан 27 November 2019 в 01:27
поделиться

Мой подход теперь был таков:

gci -r -force `
    | ? { $_.PSIsContainer -and $_.Name -match "^[._]svn$" } `
    | select Parent -Unique

Причина, по которой

select-object {$_.Directory}

не возвращает ничего полезного, заключается в том, что такого свойства нет в объекте DirectoryInfo . По крайней мере, не в моей PowerShell.


Чтобы уточнить ваш собственный ответ: PowerShell может обрабатывать большинство непустых коллекций как $ true , поэтому вы можете просто сделать:

$svnDirs = gci `
    | ? {$_.PsIsContainer} `
    | ? {
        gci $_.Name -Force `
            | ? {$_.PSIsContainer -and ($_.Name -eq "_svn" -or $_.Name -eq ".svn") }
        }
5
ответ дан 27 November 2019 в 01:27
поделиться

В итоге я сделал это с помощью счета:

$directoryContainsSvn = {
    (Get-ChildItem $_.Name -force | ? {$_.PsIsContainer -and $_.Name -eq "_svn" -or $_.Name -eq ".svn"} | Measure-Object).Count -eq 1
}
$svnDirs = Get-ChildItem | ? {$_.PsIsContainer} | ? $directoryContainsSvn
3
ответ дан 27 November 2019 в 01:27
поделиться

Вы можете немного уточнить это:

gci -fo | ?{$_.PSIsContainer -and `
            (gci $_ -r -fo | ?{$_.PSIsContainer -and $_ -match '[_.]svn$'})}

Примечание - передача $ __. Name во вложенный gci не требуется. Достаточно передать $ _.

2
ответ дан 27 November 2019 в 01:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: