我正在使用.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不区分大小写?
注意:这部分代码将在一个函数中,因此它们不会是静态的。我为这篇文章添加了示例,但它们可以是任何文件路径。
谢谢!
答案 0 :(得分:1)
与采用字符串的Replace方法不同,replace运算符采用正则表达式模式。 $ SourcePath需要进行转义,因为它包含特殊正则表达式字符的反斜杠。
$sourceFileRelativePath = $sourceFullPath -replace [regex]::escape($SourcePath)
$destFullFilePath = Join-Path $folder $sourceFileRelativePath