我正在尝试设置一个脚本,旨在更改大约 50 个文件中的 100 多个占位符。一般来说,我得到了一个可能的占位符列表,以及它们的值。我得到了一些具有 exe.config 文件和 ini 文件的应用程序。这些应用程序存储在 c:\programfiles(x86)\ 和 d:\ 中。一般来说,我设法让它使用一个路径,但不是两个。我可以很容易地编写代码来替换两次,但这给我留下了很多杂乱的代码,并且其他人更难阅读。
ls c:\programfiles(x86) -Recurse | where-object {$_.Extension -eq ".config" -or $_.Extension -eq ".ini"} | %{(gc $PSPath) | %{
$_ -replace "abc", "qwe" `
-replace "lkj", "hgs" `
-replace "hfd", "fgd"
} | sc $_PSPath; Write-Host "Processed: " + $_.Fullname}
我试图通过放置 $a = path1, $b = path2, c$ = $a + $b 来包含 2 条路径,这似乎可以让 ls 命令在两个不同的地方运行。但是,它似乎没有存储文件所在的路径,因此它会尝试替换它在您当前运行脚本的文件夹中找到的文件名。因此,即使我可能在文件应该在的地方之一,它也不在另一个......
所以..知道如何让Powershell在2个不同的地方列出文件并在两个地方替换相同的变量而不必两次使用代码吗?我考虑将我必须使用两次的代码放入一个变量中,在需要时调用它而不是再次编写它,但它似乎在使用它之前解决了代码,并且这并没有完全给我结果,因为数据来自第一部分。