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 |"