如何用powershell替换PHP变量?

dxxyhpgq  于 2023-01-24  发布在  PHP
关注(0)|答案(1)|浏览(134)

我不得不用powershell替换我的PHP变量。变量是$env = "TEST",但用powershell我想把它替换为$env = "TEST",因为使用Azure版本。目前我有一个脚本如下:

(Get-Content -Path 'C:\MyProject\MyBuildOutputs\connect.php') | 
Foreach-Object { $_ -replace '$env = "TEST"', '$env = "PROD"' } | 
Set-Content -Path 'C:\MyProject\MyBuildOutputs\connect.php' -Force

但不幸的是,它不工作,我不知道为什么。
我该怎么做呢?

hgqdbh6s

hgqdbh6s1#

发生这种情况是因为Powershell的-replace需要一个正则表达式模式。$在正则表达式中有一个特殊的含义,它是行尾锚点。

end of line, followed by env = "TEST"

要使用美元符号作为文本字符,可以将其转义为\$,或者使用[regex]类型加速器访问escape()并让Powershell执行转义。

$_ -replace [regex]::escape('$env = "TEST"'), '$env = "PROD"'

相关问题