我有这个 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
感谢您提供如何解决该问题的建议。
不认为这可以通过 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