繁体   English   中英

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

[英]How to know specific string exist or not in PowerShell?

我想验证 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 字符串后验证正确的数据库名称?

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
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM