powershell - 检查powershell字符串是否包含星号
问题描述
我有一个字符串:$row.TableName_Org[$i]
它包含的值是
This is a happy little asterisk: '*'
现在我想根据字符串包含星号的事实来做一个 IF。
if($row.TableName_Org[$i] -Match "*") {
//Do Something
}
但是给了我这个错误:
"*" - Kwantiteitsmeter {x,y} wordt door niets voorafgegaan. parseren
At C:\Users\hveijer\VS Code Repos\migratie-uitwissel\ReadData.ps1:33 char:4
+ $row.TableName_Org[$i] -match "*"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: (:) [], ArgumentException
+ FullyQualifiedErrorId : System.ArgumentException
解决方案
正如您自己发现的那样,PowerShell 通配符/glob 机制中的转义字符是`
(反引号):
'string with * in it' -like '`*'
...但反引号也是可扩展(双引号)字符串的转义字符,导致出现尴尬的双重转义的情况,例如:
$pattern = "${prefix}``*"
出于这个原因,我更喜欢让 PowerShell 为我转义我的搜索词,而不是手动进行:
[wildcardpattern]::Escape("${prefix}*")
推荐阅读
- mercurial - 如何使当前(非 HEAD)修订版成为我分支的唯一 HEAD
- r - In R package "seasonal", how can one discover which filters the automatic x11 algorithm selected?
- javascript - 仅使用时间戳估计时区?
- pnpm - 如何更改 pnpm 安装全局包的位置?
- bash - 如何在后台运行脚本然后在满足条件时将其返回到前台 BASH
- python - 如何从其他列值有条件地创建熊猫列
- reactjs - 如何在 ReactJS 的公共文件夹中导入文件(Markdown 文件)
- r - 如何通过R中的条件将文件拆分为多个文件
- python - 有特殊字符时停止使用字符串
- node.js - 如何存根节点缓存的 cache.get()?