2011-09-30 10 views
6

Por alguna razón estoy teniendo un momento brutal para analizar la cadena de conexión en el archivo web.config.Powershell regex para connectionStrings?

Ya he recibido connectionString pero estoy tratando de obtener todos los valores como la

  • origen de datos
  • Catálogo inicial
  • nombre de usuario
  • etc ...

La cadena de conexión se parece a:

Fuente de datos = db.sample.com; usuario id = usuario de la muestra; contraseña = contraseña de la muestra; inicial Catalog = sample-catalog;

+1

¿Necesita usar una expresión regular? Parece que dos llamadas a lo que Powershell usa para dividir cadenas funcionaría. Una llamada para dividir en ';', luego recorrer los resultados y dividir por '=' para obtener sus pares clave/valor. Me gustaría poner esto como una respuesta, pero no sé a) si Powershell tiene una función de división, y b) cómo se llama. – CanSpice

+0

¡Sí, funciona genial! ¡Gracias! –

Respuesta

12

Uso 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 

Salida:

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

Véase también Para más detalles: DbConnectionStringBuilder does not parse when used in PowerShell

(Es por eso que esta sintaxis divertido $sb.set_ConnectionString(...) se utiliza en lugar de $sb.ConnectionString = ...).