我正在尝试使用此脚本替换几个文件中的文本。尽管当我在我的 PC 上的目录上测试它时,它会不断替换整个文件的内容。我错过了什么?我对此很陌生...
$CTPath = "C:\path1"
$ECTPath = "C:\path2"
$FileExistCT = Test-Path $CTPath
$FileExistECT = Test-Path $ECTPath
If ($FileExistCT -eq $True)
{
$filenames = @("Filepath1.vxm", "Filepath2.vxm", "Filepath3.vxm")
foreach ($file in $filenames){
$outputfile="$file" + ".out"
Get-Content $file | Foreach-object
{
$_ -replace "DISTS2D = 636.5", "DISTS2D = 642.9" `
} | Set-Content $outputfile
}
}
ElseIf ($FileExistECT -eq $True)
{
$filenames = @("Filepath1.vxm", "Filepath2.vxm", "Filepath3.vxm", "Filepath4.vxm", "Filepath5.vxm", "Filepath6.vxm", "FilePath7.vxm")
foreach ($file in $filenames){
$outputfile="$file" + ".out"
Get-Content $file | Foreach
{
$_ -replace "DISTS2D = 636.5", "DISTS2D = 642.9" `
} | Set-Content $outputfile
}
}
Else {Write-Host "VXM Files Not Found. Verify file path and try again."}
我可能也会以一种非常迂回的方式来解决这个问题。但我需要让它工作。VXM 文件与任何旧文本文件一样被读取。当我使用这个脚本时,它会覆盖整个文件:
$_ -替换“DISTS2D = 636.5”、“DISTS2D = 642.9”`
但是当我使用基本替换功能对其进行测试时,它可以正常工作。