在 powershell 脚本中将两个正则表达式串联成一行

问题描述 投票:0回答:1

我有这个 PowerShell 脚本来根据正则表达式检测目录,然后删除它们。我怎样才能将这两行连接到一条线上?我尝试应用互联网上的一些建议,但没有一个对我有用。

    $directoryToDelete3 = Join-Path -Path $FrontendAppsDeploymentDirectory -ChildPath $application.ReverseProxyBaseUrl "[0-9][0-9][0-9]"
    $directoryToDelete6 = Join-Path -Path $FrontendAppsDeploymentDirectory -ChildPath $application.ReverseProxyBaseUrl "[0-9][0-9][0-9]-[0-9][0-9][0-9]"
    # delete these directories before deployment starts
    Get-ChildItem $directoryToDelete3 -Directory | Remove-Item -Force -Recurse
    Get-ChildItem $directoryToDelete6 -Directory | Remove-Item -Force -Recurse

感谢您提供如何解决该问题的建议。

regex powershell get-childitem
1个回答
0
投票

不认为这可以通过 WildcardPattern(

Get-ChildItem
用来查找文件夹)实现,但是您可以使用
Where-Object
通过正则表达式来实现。请参阅 https://regex101.com/r/pPafdZ/1 了解模式详细信息。

$directoryToDelete = Join-Path -Path $FrontendAppsDeploymentDirectory -ChildPath $application.ReverseProxyBaseUrl
Get-ChildItem $directoryToDelete -Directory |
    Where-Object Name -Match '^[0-9]{3}(-[0-9]{3})?$' |
    Remove-Item -Recurse
© www.soinside.com 2019 - 2024. All rights reserved.