azure 如何知道特定的字符串在PowerShell中是否存在?

exdqitrt  于 2023-01-18  发布在  Shell
关注(0)|答案(1)|浏览(162)

我想验证CI中给定脚本的数据库。我想检查给定文件中是否存在特定字符串。
下面是我的文件USE [SampleDB]的内容
我正在阅读文件的内容并检查[SampleDB]字符串是否存在于文件中。
我试过以下方法。

If(Get-Content -path D:/Document/admin.sql | Select-String -Pattern "[SampleDB]")
{
  # Right Database exist
} else {
  # Right Database does not exist
}

如何验证USE字符串后面的数据库名称是否正确?

mwkjh3gx

mwkjh3gx1#

Select-String使用 * 正则表达式 * 来执行字符串搜索,构造[...]在该上下文中有特殊含义-即,它表示“匹配这些字符中的任何一个”,与您所期望的不完全相同。
要逐字搜索单词[SampleDB],您必须正确转义它:

# escape your search term!
$searchTerm = [regex]::Escape('[SampleDB]')

if(Get-Content -path D:/Document/admin.sql | Select-String -Pattern $searchTerm) {
  # Right Database exist
} else {
  # Right Database does not exist
}

...或者您可以请求Select-String使用-SimpleMatch开关执行非正则表达式匹配:

if(Get-Content -path D:/Document/admin.sql | Select-String -Pattern "[SampleDB]" -SimpleMatch) {
  # Right Database exist
} else {
  # Right Database does not exist
}

相关问题