2011-09-30 13 views
6

web.config dosyasında bağlantı dizesini ayrıştırma acımasız vakit geçiriyorum.Powershell regex? Nedense

Zaten connectionString kazanılmış ettik ama böyle

  • Veri Kaynağı
  • ilk katalog
  • adı vb
  • ...
olarak tüm değerleri almaya çalışıyorum

bağlantı dizesi gibi görünüyor:

Veri Kaynağı = db.sample.com; kullanıcı id = numune kullanıcılı; parola = numune-şifre; İlk Katalog = numune-katalog;

+1

Bir düzenli ifade kullanmama gerek var mı? Powershell'in dizeleri ayırmak için kullandığı her şeye iki çağrı gibi görünüyor. '' 'Bölümüne bölünecek bir çağrı, ardından sonuçların arasında dolaşın ve anahtar/değer çiftlerinizi almak için' = 'ile bölün. Bunu bir cevap olarak koydum ama bilmiyorum a) eğer Powershell bir split fonksiyona sahipse ve b) ne denirse. – CanSpice

+0

Evet, harika çalışıyor! Teşekkürler! –

cevap

12

Kullanım System.Data.Common.DbConnectionStringBuilder

$sb = New-Object System.Data.Common.DbConnectionStringBuilder 
$sb.set_ConnectionString('Data Source=db.sample.com;user id=sample-user;password=sample-password;Initial Catalog=sample-catalog;') 

$sb 

Çıktı:

Key    Value   
---    -----   
data source  db.sample.com 
user id   sample-user  
password  sample-password 
initial catalog sample-catalog 

fazla ayrıntı için Ayrıca bkz: DbConnectionStringBuilder does not parse when used in PowerShell

(bu komik sözdizimi $sb.set_ConnectionString(...)$sb.ConnectionString = ... yerine kullanılır nedeni budur).