我有一个变量,具有以下字符串值:

PS C:\> $sql.physicalname
I:\Data\Data1.mdf
I:\Data\Data2.ndf
I:\Data\Data3.ndf
I:\Data\Data4.ndf
I:\Data\Data5.ndf
I:\Data\Data6.ndf
I:\Data\Data7.ndf
I:\Data\Data8.ndf
I:\Data\Data9.ndf
I:\Data\log.ldf

我想要的是替换/修剪字符串,以便仅保留.mdf / .ndf / .ldf扩展名:
.mdf
.ndf
.ndf
.ndf
.ndf
.ndf
.ndf
.ndf
.ndf
.ldf

我尝试将-replace参数与*通配符一起使用,但无法将其包围。

最佳答案

由于这是您传递给-replace的正则表达式,请尝试使用它,例如与

-replace ".*\.", "."

更好,更可靠的方法是使用类似的方法
$sql.physicalname | % { [System.IO.Path]::GetExtension($_) }

关于powershell - 在文件扩展名之前替换字符串中的字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37858867/

10-09 20:24