2011-09-30 7 views
6

Z jakiegoś powodu mam brutalny czas analizowania ciąg połączenia w pliku web.config.Polecenie regularne dla connectionStrings?

Już dostał connectionString ale staram się, aby wszystkie wartości, takie jak

  • Źródło danych
  • Katalogu Początkowa
  • Nazwa
  • etc ...

Ciąg połączenia wygląda następująco:

Źródło danych = db.sample.com; użytkownik id = przykładowy użytkownik; hasło = przykładowe hasło; Początkowa Katalog = przykładowy katalog;

+1

Czy potrzebujesz użyć wyrażenia regularnego? Wygląda na to, że dwa połączenia z tym, co Powershell używa do dzielenia łańcuchów, zdziałają. Jedno połączenie do podziału na ';', następnie przeprowadź pętlę wyników i podziel się przez '=', aby uzyskać pary klucz/wartość. Powiedziałbym to jako odpowiedź, ale nie wiem a) czy funkcja Powershell ma funkcję podziału, oraz b) jak się nazywa. – CanSpice

+0

Tak, to działa świetnie! Dzięki! –

Odpowiedz

12

Zastosowanie 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 

wyjściowa:

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

Zobacz także więcej szczegółów: DbConnectionStringBuilder does not parse when used in PowerShell

(Dlatego ten zabawny składnia $sb.set_ConnectionString(...) jest używany zamiast $sb.ConnectionString = ...).

Powiązane problemy