2016-08-11 8 views
-1

でファイル内の文字列を置換:私は使用してバージョン= 4.3.2.1になるためにPowerShellのV2を使用して= 1.2.3.4バージョンを更新しようとしていますPowerShellの - 私は、次のテキストを含むファイル持っているワイルドカード

hello 
hello 
world 
world 
this is a testVersion=1.2.3.4 test test 

を-replace バージョン番号はランダムなので、未知のバージョン番号を考慮する必要がありますが、フォーマットは常にバージョン、等号、交互の数字、ピリオド、数字、ピリオド、数字、ピリオドと同じになります、バージョン番号の桁。ご覧のように、Version = 1.2.3.4の左と右のテキストもあり、影響を受けることなくその位置にとどまる必要があります。バージョン番号を変更した後、これらの変更を新しいファイルに書き込む必要があります。どんな助けでも大歓迎です!ありがとう

答えて

2

PS 2と互換性がある不完全な例です。

'Version=1.2.3.4' -replace '(\d+)\.(\d+)\.(\d+)\.(\d+)', '$4.$3.$2.$1' 
+0

Chrisさんの唯一の問題は、1.2.3.4ではない不明なバージョン番号を考慮する必要があることです。何か案は? – oz888

+0

それはそうです。ドットで区切られた4桁の数字は、最初にマッチした正規表現グループを使って逆アセンブルされます。 $ 1〜$ 4はリテラル値ではなくマッチグループへの参照です。 –

+0

ああ、明確化のおかげでChris - youre the man – oz888

関連する問題