【发布时间】:2020-08-21 00:26:50
【问题描述】:
我的任务是修改一个目录下的一些Config文件,需要修改的文件有7个,都是以“Monitoring_Tran_xx”开头的。
在这些文件中,某些值(TransactionID="01" AgreedResponseTime="500" SearchProfileID="216") 需要更改,但在所有 7 个文件中都不存在,并且需要在替换或创建它们之前检查它们是否存在。
如果某个参数等于某个值,例如,我也尝试插入一个新参数(使用新项目) if TemplateType = "4152" 然后在它旁边创建一个新参数"DirectoryPoolID = '3' "
感谢您在这方面的帮助。
谢谢
以下配置文件示例:
<?xml *version="1.0"* ?>
<Monitor>
<Configuration OperatingMode="Transaction" LogFileName="C:\Program Files\*******s\MonitoringOMTR\MonitorLog_01.log" WriteFileInterval="120" ConnectionKey="**********" />
<TransactionMonitoringConfig TransactionID="01" AgreedResponseTime="500" SearchProfileID="216" />
<ShowMessages>
<Message Name="MOISearchStart" />
<Message Name="MOOSearchFound" />
<Message Name="MOOSearchEnd" />
<Message Name="MOOAlert" />
</ShowMessages>
<PerformanceCounters TransactionCount="191" TransactionBreaches="0" />
</Monitor>
我尝试过但效果不佳的 Powershell 脚本:
(Get-Content -Path '***FS2072\UserData$\aroyet01\Desktop\HostPS.txt') |
if ([bool]((Get-Content -Path "***FS2072\UserData$\aroyet01\Desktop\HostPS.txt") -like '*DirectoryPool*', '*SearchProfile*')) {
write-host "Found it"
}
else {
write-host "Did not find it"
}
ForEach-Object {$_ -replace 'TransactionCount="191"', 'TransactionCount="196"'} |
Set-Content -Path '***FS2072\UserData$\aroyet01\Desktop\HostPS.txt'
Get-Content -Path '***FS2072\UserData$\aroyet01\Desktop\HostPS.txt'
【问题讨论】:
-
配置文件在
-
请使用您的配置文件更新您的问题(使用代码格式 - 4 个空格缩进,就像您对脚本所做的那样),而不是将其粘贴为评论。
标签: powershell