0

我一直在使用 .replace,直到我发现它区分大小写。所以我重写了一行代码来使用 -replace 。

这是有效的,但区分大小写:

$SourcePath = 'c:\scripts\test
$folder = 'c:\testing\test'
$sourceFullPath = 'c:\scripts\test\FolderToTest'
$sourceFileRelativePath = $sourceFullPath.Replace($SourcePath, "")
$destFullFilePath = $folder + $sourceFileRelativePath

Write-output $destFullFilePath
c:\testing\test\FolderToTest

我如何将其转换为使用 -replace 或者有没有办法使用 .net .replace 不区分大小写?

注意:这部分代码将在一个函数中,因此它们不会是静态的。我为这篇文章添加了示例,但它们可以是任何文件路径。

谢谢!!

4

1 回答 1

1

与采用字符串的 Replace 方法不同,replace 运算符采用正则表达式模式。$SourcePath 需要转义,因为它包含反斜杠,这些反斜杠是特殊的正则表达式字符。

$sourceFileRelativePath  = $sourceFullPath -replace [regex]::escape($SourcePath)
$destFullFilePath = Join-Path $folder $sourceFileRelativePath
于 2013-06-06T20:05:09.203 回答