我对PowerShell很陌生。最近,我的任务是弹出错误消息,该错误消息将帮助本地用户确定MS SQL按需数据库合并是否有效。我编写了一个脚本,可以执行以下操作:
我以为既简单又快捷,但似乎在条件语句中苦苦挣扎。这是脚本:
cmd /c c:\users\PERSON\desktop\merge.bat
$c = get-content c:\replmerg.log
if ($c -contains ("ERROR"))
{
$a = new-object -comobject wscript.shell
$b = $a.popup(“ERROR - Database Merge“,0,”Please Contact Support”,1)
}
else
{
$a = new-object -comobject wscript.shell
$b = $a.popup(“SUCCESS - Database Merge“,0,”Good Job!”,1)
}
现在发生的事情是该脚本运行并且仅跳到成功消息。我可以确认,仅在powershell中运行“get-content”命令将自己产生一个变量,然后可以调用该变量并显示日志文件的内容。但是,我的脚本并未出现,好像它实际上是在检查$ c变量中的单词,然后按预期方式弹出错误消息。我在这里想念什么?
最佳答案
克里斯蒂安的答案是正确的。您还可以使用 -match 运算符。例如:
if ((Get-Content c:\replmerg.log) -match "ERROR")
{
'do error stuff'
}
else
{
'do success stuff'
}
如果要区分大小写,可以使用 -cmatch 。
关于sql-server-2008 - 在String中搜索变量,然后在PowerShell中运行条件语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5886003/