gpt4 book ai didi

string - 用通配符替换PowerShell字符串

转载 作者:行者123 更新时间:2023-12-02 23:42:27 25 4
gpt4 key购买 nike

我在SQL文件中有一个版本号,需要通过PowerShell替换。在文件中看起来像这样:

values
('Current', '15.7.1.0'),
('New', '15.7.22.0')

我需要用当前版本替换它,但是由于我不知道当前版本号是什么,也不知道其确切长度(数字计数可以更改,因为前导零不会改变)使用),我需要使用通配符,而我正在尝试的方法不起作用。

目前,这是我正在尝试的:
$content = Get-Content C:\Users\user\Desktop\sql\file.sql
$newContent = $content -replace "'Current', '*'", "'Current', '$newVersion'"

实际上,它找到并替换了它,但由于某种原因,并非全部。运行之后,我得到的是:
values
('Current', '16.6.21.0'15.7.1.0'),
('New', '15.7.22.0')

因此,它肯定会在文件中找到正确的位置并对其进行替换,但实际上并未替换版本号。谁能告诉我我在做什么错?

最佳答案

正如@PetSorAl所说,-replace使用通配符而不是正则表达式。

以下是基于您的示例。


$content = @"
values
('Current', '15.7.1.0'),
('New', '15.7.22.0')
"@

$newVersion = '16.6.21.0'
$newContent = $content -replace "'Current', '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}'", "'Current', '$newVersion'"
Write-host $newContent

结果
values
('Current', '16.6.21.0'),
('New', '15.7.22.0')

关于string - 用通配符替换PowerShell字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37706674/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com