[解決済み] PowerShellを使用してファイル内の複数の文字列を置換する方法
2022-08-13 10:07:33
質問
設定ファイルをカスタマイズするためのスクリプトを書いています。このファイル内の文字列の複数のインスタンスを置換したいので、PowerShell を使用してその作業を行おうとしました。
1 回の置換では問題なく動作しますが、複数の置換を行うには、毎回ファイル全体を再度解析する必要があり、このファイルは非常に大きいため、非常に時間がかかります。スクリプトは次のようなものです。
$original_file = 'path\filename.abc'
$destination_file = 'path\filename.abc.new'
(Get-Content $original_file) | Foreach-Object {
$_ -replace 'something1', 'something1new'
} | Set-Content $destination_file
こんなのが欲しいんだけど、どう書けばいいのかわからない。
$original_file = 'path\filename.abc'
$destination_file = 'path\filename.abc.new'
(Get-Content $original_file) | Foreach-Object {
$_ -replace 'something1', 'something1aa'
$_ -replace 'something2', 'something2bb'
$_ -replace 'something3', 'something3cc'
$_ -replace 'something4', 'something4dd'
$_ -replace 'something5', 'something5dsf'
$_ -replace 'something6', 'something6dfsfds'
} | Set-Content $destination_file
どのように解決するのですか?
ひとつの方法として
-replace
の操作を連結することです。この場合
`
は改行をエスケープし、PowerShellは次の行で式の解析を継続します。
$original_file = 'path\filename.abc'
$destination_file = 'path\filename.abc.new'
(Get-Content $original_file) | Foreach-Object {
$_ -replace 'something1', 'something1aa' `
-replace 'something2', 'something2bb' `
-replace 'something3', 'something3cc' `
-replace 'something4', 'something4dd' `
-replace 'something5', 'something5dsf' `
-replace 'something6', 'something6dfsfds'
} | Set-Content $destination_file
もう一つの選択肢は、中間変数を割り当てることです。
$x = $_ -replace 'something1', 'something1aa'
$x = $x -replace 'something2', 'something2bb'
...
$x
関連
-
[解決済み] Export-Csv - パス 'C:\export.csv' へのアクセスは拒否されました。
-
[解決済み] Powershell send-mailmessage - 複数の受信者にメールを送信する
-
[解決済み] Vimで文字を改行で置き換える方法
-
[解決済み] PowerShellでコードをコメントアウトする方法とは?
-
[解決済み] PowerShellで文字列と変数を連結する方法は?
-
[解決済み] Powershellで複数のファイル内の文字列を検索してファイル名を返すには?
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み】PowerShellスクリプトを実行する方法
-
[解決済み】WindowsのPowershellでUnixのtailと同等のコマンドを実行する
-
[解決済み】PowerShellで、ファイルに関数を定義して、PowerShellのコマンドラインから呼び出すにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Invoke-Command エラー "Parameter set cannot be resolved using specified named parameters".
-
[解決済み] PowerShellで、変数が数値を保持しているかどうかをテストするにはどうすればよいですか?
-
[解決済み] Add-ADGroupMember が ID を持つオブジェクトを見つけられません。
-
[解決済み] Push-LocationとSet-Locationの使い分けは?
-
[解決済み] 管理者として実行しても、「要求されたレジストリへのアクセスは許可されません」と表示される。
-
[解決済み] PowerShellでディレクトリを変更する
-
[解決済み] PowerShell モジュールを全ユーザーに持続的にインストールする
-
[解決済み] いずれかのキーを押して続行[複製]。
-
[解決済み] PowerShellで変数とその型がBooleanであることを宣言する方法は?[重複している]をクリックします。
-
[解決済み] powershellの&マークはどういう意味ですか?