0

Я пытаюсь написать сценарий Powershell в jenkins для чтения файла и замены части пути к файлу в этом файле. Ниже скрипт работает, когда я жёстко путь:Замена части пути к файлу и получение результатов в Sonarqube

$file = "$env:WORKSPACE\UIArtifacts\unit-tests-lcov.info" 
$text = (Get-Content -Path $file -ReadCount 0) -join "`n" 
$text -replace "c:\\Sysapps\\Hudson\\.jenkins\\jobs\\Encirca - UI CI\\workspace\\trunk\\app", $env:WORKSPACE | Set-Content -Path $file 

Но, когда я динамически установить путь к файлу не получить результаты. Ниже приведен сценарий, который я пытаюсь запустить:

$file = "$env:WORKSPACE\UIArtifacts\unit-tests-lcov.info" 
$text = (Get-Content -Path $file -ReadCount 0) -join "`n" 
$text -replace ".*\\workspace\\trunk\\app", $env:WORKSPACE | Set-Content -Path $file 

Может ли кто-нибудь помочь мне в этом отношении?

ответ

0
$file = "$env:WORKSPACE\UIArtifacts\unit-tests-lcov.info" 
$text = (Get-Content -Path $file -ReadCount 0) -join "`n" 
$replace = ".*\\trunk\\app" 
$text -replace $replace $env:WORKSPACE | Set-Content -Path $file 

PS C:\Windows\system32> $file = "C:\temp\test.txt" 

PS C:\Windows\system32> $text = (Get-Content -Path $file -ReadCount 0) -join "`n" 

PS C:\Windows\system32> $text 
c:\Sysapps\Hudson\.jenkins\jobs\Encirca - UI CI\workspace\trunk\app\TestFolder1\TestFolder2 

PS C:\Windows\system32> $string = ".*\\trunk\\app" 

PS C:\Windows\system32> $text -replace $string, "Set\Custom\Path\Here" | Set-Content -Path $file 

PS C:\Windows\system32> Get-Content $file 
Set\Custom\Path\Here\TestFolder1\TestFolder2 
+0

Вышеупомянутый скрипт выполнен, но я не получил решение. Я получаю решение, когда я жестко кодирую путь к файлу. Любая дополнительная помощь? –

+0

Где код отличается от вашего? Является ли часть пути, которую вы пытаетесь заменить всегда в начале строки? –

+0

Да, это всегда в начале пути –

Смежные вопросы