У меня есть приведенный ниже сценарий рабочего процесса powershell, который является частью более крупного сценария, который выполняется при каждой перезагрузке системы. Мне нужно, чтобы он запускал и редактировал файлы только один раз. Пожалуйста, дайте мне знать, как этого добиться. Спасибо.
#=============================Edit Oracle DB files==============================
workflow Edit-Dbfiles {
param (
[Parameter(Mandatory = $true, Position = 0)]$oracleFilePaths,
[Parameter(Mandatory = $true, Position = 1)]$newHostname
)
ForEach ($filePath in $oracleFilePaths) {
if (!(Test-Path -Path $filePath)) {
Write-Warning "$filePath does not exist`r`n"
}
else {
Write-Host "Modifying hostname in $filePath"
$tempFilePath = "$env:HOMEDRIVE\temp\$($filePath | Split-Path -Leaf)"
$hostPattern = "(?<=\(HOST = )[^)]+"
(Get-Content -Path $filePath) -replace $hostPattern, $newHostname | Add-Content -Path $tempFilePath
Remove-Item -Path $filePath
Move-Item -Path $tempFilePath -Destination $filePath
Write-Host "Modified $filePath with the new hostname - $newHostname"
}
}
}
Edit-Dbfiles -oracleFilePaths $oracleFilePaths -newHostname $newHostname