我正在尝试使用Get-ChildItem
和正则表达式获取文件夹列表,但它没有按预期工作。下面是代码的开头。其余部分被省略。
foreach ($directory in $directories)
{
$VNextDirs = @(Get-ChildItem -recurse -path "$path\$directory\Filehandler" |
Where-Object {
($_.Name -match "^v(\s\d)" -or
$_.Name -match "^v(\sn)" -and
($_.PSIsContainer)
}) | select -expand FullName
这匹配以下文件夹。
"V 10.0.0.0",
"V 9.0.0.0",
"Sample Text V 10.0.0.0"
但是,我只希望它匹配第一个和第二个(其中任何数字的V空间),而不是它前面有任何文本的地方(如第3个条目)。所以它不应该匹配"示例文本V 10.0.0.0",但它应匹配" V 10.0.0.0"和" V 9.0.0.0"。
我的代码正在选择我想要的所有文件夹,但它还包括那个讨厌的文件夹,其中" V空格数字"不在文件夹名称的开头。
如何更改此选项以便它只匹配我想要的文件夹?
注意:我也设置为匹配" V空格和字母N"像这样" V Next Build",但这与这个问题无关。