Powershell - 火柴 [1] 不适用于"|"



1

这是我创建的代码的一部分:

$NameOrigin = "BP |"
$NameBackup = "Backup"
Get-CimInstance win32_logicaldisk |
ForEach-Object{
if ($_.VolumeName -match "^$NameOrigin(.+)" -and $_.VolumeName -notmatch "^$NameBackup(.+)" ){
$Employee = $Matches[1]
$FSRootOrigin = "{0}{1}" -f $_.DeviceId,''
}
}

基本上,它会检查是否有任何驱动器的卷标中包含单词"BP |"而不包含单词"Backup",并获取该驱动器的字母。

考虑到这一点,如果您查看$Employee变量,其想法是它提取"|"之后的内容,这样我就可以在脚本的另一个步骤中使用它,但由于某些原因,当使用"|"命名驱动器时,它不起作用。

$NameOrigin变量为"BP -"时,我能够提取"-"之后的信息。

为什么使用"|"不起作用?

我该怎么绕过这个?

我想答案是转义管道,因为它是"的正则表达式;或";。

$NameOrigin = "BP |"

最新更新