Я работал над пакетным сценарием с Powershell, его необходимо запустить с файлом расписания и содержимым следующим образом:
Server;Services;ContentPath;Status(Ready,Done,Disabled)
server1;servicename1;c:\test\;Ready
server2;servicename1,servername2;c:\test,d:\temp;Ready
Сценарий будет сканировать файл построчно.Извлеченное содержимое будет разделено и передано в функцию для проверки работоспособности.
Однако я обнаружил, что когда серверу не удается подключиться, и в тексте необходимо изменить Ready
на disabled
,текст будет перезаписан только одной текущей строкой.: - (
Get-Content -Path $PlayBook | where{$_ -match 'server1'} |%{$_.replace("Ready","Disable")} | Set-Content $PlayBook
Так есть ли в любом случае мы можем заменить указанное содержимое в тексте в соответствии с правилом? Или я должен преобразовать текст в файл CSV, может быть, есть больше методов и объектов, которые мы можемиспользовать?
Большое спасибо заранее.