Powershell读取文件,搜索$$I并替换,写入文件?

问题描述 投票:0回答:1

请某人帮助我一下。 我想读取一个文本文件,搜索

$$I
并将其替换为当前的目录名称,然后再次写入文件。 好吧,有些东西不起作用:(

$content = [IO.File]::ReadAllText("CC.comp")
$content = $content -replace '$$I','Split-Path -Path (Get-Location) -Leaf'
Print $content
pause
powershell search
1个回答
0
投票

-replace
使用 regex 并且
$
是一个特殊的正则表达式字符,如果你想按字面匹配它,需要用
\
进行转义:

'$$I' -replace '$$I', 'test'    # Nothing is replaced
'$$I' -replace '\$\$I', 'test'  # Outputs 'test'

但是,使用

.Replace
方法 进行字面替换要容易得多,不需要转义:

(Get-Content CC.comp -Raw).Replace('$$I', (Split-Path $pwd -Leaf)) |
    Set-Content CC.comp
© www.soinside.com 2019 - 2024. All rights reserved.