Hi All,
最近我在编写一个batch 脚本. 脚本受一个schedule文件控制并执行一些health check和自动化部署的操作, schedule文件内容如下:
#Server;Services;ContentPath;Status(Ready,Done,Disabled)
server1;service1;c:\temp,c:\test;Ready
server2;service3;c:\temp,c:\test;Ready
脚本在batch前会对服务器进行一些health check , 参数逐行按照上述内容进行获取. 如果失败则将服务器所在行最后的status 由‘Ready’ 改为 Disabled并写入到文件中, 具体逻辑如下:
$PlayBook = 'C:\temp\playbook.txt' $server = 'server1' Get-Content -Path $PlayBook | foreach { if ($_ -match $server){ $_.replace("Ready","Disable") #$_ } } | Set-Content $PlayBook -Force
然而,最后schedule文件中的所有内容被符合条件的行数据所覆盖。 🙁
请问各位有什么方法可以实现这个么?