XMLベースの.configファイルのグループを更新しようとしています。私はプラス記号が含まれている場合、スクリプトは何もしませんPowerShellで文字列値をプラス記号 "+"で編集/置換できません
< SharedPassKey=123456789abcdefghi/JKLM+nopqrst= />
:私は私のスクリプトに置き換えることはできませんプラス記号を含むファイル内の文字列があります。すべての設定が変わるので、私はテキストを置き換える必要があります - 新しいファイルだけで行くことはできません。
ファイル内の一致する値が指定された値に置き換えられますが、+
シンボルはこれを許可していません。ここに私のPSスクリプトです:私はプラス記号にすべてのテキストを置き換え試験として
$DIRs = Get-ChildItem -Path "C:\TEST" -Directory
Get-ChildItem $DIRs -File -Recurse -Filter *.config |
ForEach { (Get-Content $_.FullName) |
ForEach { $_ -replace '< SharedPassKey=123456789abcdefghi/JKLM+nopqrst= />','< SharedPassKey=123456789abcdefghi/JKLM.nopqrst= />' } |
Set-Content $_.FullName }
、それがうまく働いたが、私は残っていたとして、プラス記号と、次は新しいテキストの最後に存在しましたスクリプトの "+ nopqrst"。
PSV3、FYIで実行しています。
プラス記号の前にバックスラッシュ文字を入力してください。 – thepi
'< foo=bar= />'は無効です。あなたのデータは実際にそのように見えますか?それ以外の場合は、XMLパーサーを使用する方が適切なアプローチかもしれません。 –
@AnsgarWiechers - 私のXMLは正常ではありませんが、これはすべての情報が取り除かれた状態での簡単な表現でした。 –