Soy un desarrollador de C# y he estado usando PowerShell desde los días beta cuando aún se llamaba Monad. También desarrollé bastante en UNIX, incluida la automatización/scripting con Korn Shell. Para mí, PowerShell fue un regalo del cielo porque me estaba cansando de los pequeños desajustes de impedancias de Korn Shell con Windows. Por ejemplo, la especificación de una ruta compartida de red fue particularmente gruesa "\\\\\\server\\\\share"
IIRC.Fue un juego de adivinanzas cuántas veces escapaste una barra invertida dependiendo de cuántas veces se evalúa la cadena.
utilizo PowerShell para una gran cantidad de tareas de automatización tales como:
- grepping a través de un directorio de origen grande donde quiero buscar contenido de los archivos csproj.
- Una vez modifiqué más de 260 archivos VCPROJ con un script de PowerShell.
- Otra vez tuve que crear un grupo de nuevos proyectos de C# cada uno con un buen número de propiedades de proyecto para ser configuradas, incluyendo una gran cantidad de ajustes de Análisis de Código. Escribí un guión para tomar un archivo de proyecto de C# y hacer todos los ajustes para mí. Me ahorró mucho tiempo y más importancia, me salvó cometer muchos errores y/u olvidarme de establecer ciertas configuraciones
- Consultas TFS (usando el cmdlet TFPT PowerShell) como buscar conjuntos de cambios recientes con una palabra determinada en el comentario de verificación .
- Eliminación de todos los archivos temporales (directorios bin/obj, archivos suo, etc.) dentro de una jerarquía de carpetas determinada.
Para reemplazar personalizados utilidades de línea de comandos:
Puede utilizar PowerShell como una gran manera de reemplazar todas esas pequeñas utilidades de línea de comandos que se utiliza para escribir. Piensa sobre esto. PowerShell es un lenguaje de script razonablemente poderoso que le da acceso a la mayor parte de .NET Framework. Se destaca especialmente en el análisis de parámetros, es decir, tiene un motor de análisis de parámetros incorporado que le proporciona parámetros parciales, parámetros posicionales, parámetros opcionales, parámetros de conmutación, parámetros de enlace de tuberías, validación de parámetros y más. Ahora considere cuánto código en su utilidad típica de línea de comandos está dedicado al análisis de parámetros frente a la funcionalidad real. Casi he dejado de escribir utilidades de línea de comandos (a menos que sean particularmente complicadas, entonces no se puede vencer al depurador VS). Y dejo que PowerShell maneje todo el análisis de parámetros para mí. Y con PowerShell 2.0 es extremadamente fácil agregar documentación/uso a su utilidad simplemente decorando su script con algunos comentarios formateados apropiadamente.
También uso PowerShell como .NET REPL:
- Elimina la necesidad de crear ConsoleApplication59 sólo para ver lo que hace una cadena de formato, por ejemplo, Simplemente voy a mi indicador de PowerShell y pruebo algo como
"{0,20:F1}" -f 41.22
.
También puede aprovechar fácilmente el host del motor PowerShell dentro de su propia aplicación C#. Esto es útil si proporciona características a sus usuarios finales que le gustaría hacer secuencias de comandos de secuencias de comandos. Puede escribir esas características como un cmdlet de PowerShell (en C#). Esos cmdlets se pueden utilizar directamente desde la línea de comandos y si aloja PowerShell en su aplicación GUI, a continuación, puede acceder a ese mismo conjunto de código a partir de ahí por ejemplo:
private bool VerifyPowerShellScriptSignature(string path)
{
using (var runspaceInvoker = new RunspaceInvoke())
{
Collection<PSObject> results =
runspaceInvoker.Invoke("Get-AuthenticodeSignature " + path);
Signature signature = results[0].BaseObject as Signature;
return signature == null ? false :
(signature.Status == SignatureStatus.Valid);
}
}
posible duplicado de [¿Cómo se utiliza PowerShell? ] (http://stackoverflow.com/questions/8722/how-do-you-use-powershell) – Helen