【发布时间】:2018-06-24 00:23:58
【问题描述】:
我正在构建一个脚本以在 PowerShell 中使用 Ahsay 监控备份,但在识别备份类型时遇到了问题,它通过检查日志文件前几行中的某些关键字来工作,我希望这样如果它包含单词“文件列表”但还包含单词“数据库”,则不会将其记录为文件类型备份 - 代码如下(变量 $LogType 包含正在搜索的文本):
get-childitem -Exclude *Scheduler*, *SystemTray*, *Archived*,*System*| select -last 1 | Get-Content -totalcount 13 -outvariable LogType
if($LogType -notlike "*Database*" -and $LogType -like "*file list*")
{
...
}
当它正在搜索的文本为时,它返回 true 并执行 if 语句:
[2018/01/14 19:30:06] [info] Start [ Windows Server 2008 R2 (FS1), AhsayOBM 6.27.0.0 ]
[2018/01/14 19:30:10] [info] Using Temporary Directory C:\Users\systemadmin\.temp
[2018/01/14 19:30:10] [info] Start running pre-commands
[2018/01/14 19:30:10] [info] Finished running pre-commands
[2018/01/14 19:30:11] [info] Start creating Shadow Copy Set ...
[2018/01/14 19:30:21] [info] Shadow Copy Set successfully created Database
[2018/01/14 19:30:21] [info] Downloading server file list ...
[2018/01/14 19:36:44] [info] Downloading server file list ... Completed
[2018/01/14 19:36:45] [info] Reading backup source from hard disk
...
我无法理解为什么会这样,有人可以帮忙吗?
【问题讨论】:
-
你在
$LogType中得到了什么?你如何填充它? (请编辑问题并填写详细信息,不要在评论中回答。这些很难阅读。) -
你应该添加一些变量
$LogType的内容信息。在您的问题中键入“文件列表”,然后在脚本中将其更改为“文件列表”。请注意不同的外壳。也许使用$LogType.ToUpper() -notlike "*DATABASE*" -and $LogType.ToUpper() -like "*FILE LIST*"
标签: regex powershell scripting backup