1. ホーム
  2. powershell

[解決済み] 特定の拡張子を持つすべてのファイルの検索と置換を行うPowerShellスクリプト

2022-06-24 12:05:03

質問

いくつかの設定ファイルがこのようにネストされています。

C:\Projects\Project_1\project1.config
  
C:\Projects\Project_2\project2.config

私の設定では、このような文字列の置換を行う必要があります。

<add key="Environment" value="Dev"/>

になる。

<add key="Environment" value="Demo"/>

バッチスクリプトを使うことも考えたのですが、なかなか良い方法がなく、PowerShellスクリプトを使えば簡単に実行できると聞いています。find/replaceの例もありましたが、C:indexProjectsディレクトリ内の全フォルダを巡回して、拡張子が'.config'で終わるファイルを探すような方法を希望しています。

これを行う方法を見つけるための良いリソース、またはいくつかの洞察を提供できる PowerShell の達人がいれば教えてください。

どのように解決するのですか?

私の頭の中にある最初の試みがここにあります。

$configFiles = Get-ChildItem . *.config -rec
foreach ($file in $configFiles)
{
    (Get-Content $file.PSPath) |
    Foreach-Object { $_ -replace "Dev", "Demo" } |
    Set-Content $file.PSPath
}