使用PowerShell匹配存储在变量中的字符串

时间:2012-05-01 15:32:39

标签: powershell string-comparison

我正在尝试创建一个备份脚本,该脚本将移动30天以前的文件,但我希望能够从列表中排除文件夹

$a = "C:\\Temp\\Exclude\\test"
$b = "C:\\Temp\\Exclude"

如果我运行以下内容:

$a -match $b

关注PowerShell Basics: Conditional Operators -Match -Like -Contains & -In -NotIn

$Guy ="Guy Thomas 1949"
$Guy -match "Th"

返回true

1 个答案:

答案 0 :(得分:6)

我会说使用wilcards之类的操作符,它可以为你节省很多头痛:

$a -like "$b*"

匹配运算符正在使用正则表达式模式,并且路径中包含正则表达式特殊字符(escape characeter)。如果您仍想使用-match - 请确保转义字符串:

$a -match [regex]::escape($b)

这会有效,但请记住它可以在字符串的中间匹配,你可以添加'^'锚点来告诉正则表达式引擎从字符串的开头匹配:

$a -match ("^"+[regex]::escape($b))