Pregunta

Es su sin embargo para probar la exactitud de una secuencia de comandos PowerShell sin ejecutarlo. Yo sabía que se podía hacer algo similar en UNIX, pero no puedo encontrar el equivalente de PowerShell.

En esencia lo que tengo es un repositorio de scripts, donde cada secuencia de comandos está ligado a gobernar. Si se activa una regla, se ejecuta el script, pero necesito estar seguro de la secuencia de comandos es válida, antes de su puesta en el repositorio.

Gracias.

Hola, Bueno, por desgracia el comando whatif no es suficiente. Su la sintaxis de guiones que desea comprobar de un motor de tiempo de ejecución de C #, que dispara un script si se activa un motor de reglas. Antes de que los fuegos de script, escribo en él, los valores IList de la regla, y luego dispararla. Pero necesito para asegurar que es sintácticamente correcta, de lo contrario voy a tener que confiar en el escritor regla para asegurarse de que son correctos, que no puedo hacer, ya que muchas personas se escribió reglas, sólo una secuencia de comandos Duff traerá el las vueltas del motor. No puedo hacer que a medida que el motor es un producto de clase enterpise diseñado para el tiempo de actividad de seis sigma.

Creo que la manera de hacerlo es utilizar este, que es un lib v2.

http: // msdn.microsoft.com/en-us/library/system.management.automation.parseexception(VS.85).aspx

Creo que no hay manera de crear un ScriptBlock y poner un intento de captura alrededor de ella para coger el ParseException. ¿Puede alguien decirme cómo hacerlo. Esto se está convirtiendo en un verdadero desafío.

Gracias.

Hola, Así que hablé con un chico en la EM (él es sharepoint pm) y habló con uno de los chicos PowerShell, y él me informó de que no hay manera real en v1 PowerShell para comprobar la sintaxis de la secuencia de comandos sin ejecutar. Así que supongo que la bandera whatif es el más cercano, pero no un corrector estática unfortumately. La buena noticia es, en la versión 2 no es una forma de tokenize el flujo de entrada, a través de la clase Automation.PsParser, miembro de Tokenize. Esto tokenize un script de acuerdo con los gramos de PS, por lo que si dados a cabo, es un script de basura. La pregunta es v2 no tiene una fecha de lanzamiento todavía.

Gracias por la ayuda. Bob.

¿Fue útil?

Solución

Lo que queremos es prolly whatif / confirmar . Su puerto directo desde Unix mundo.

Otros consejos

Por lo tanto, se le solicita la corrección funcional o corrección sintáctica?

Funcionalmente que había necesidad de crear un caso de prueba y el medio ambiente a prueba en.

sintácticamente usted está buscando un corrector de código estático para PowerShell.

Muchos de los comandos de PowerShell ofrecen una whatif parámetro.

Creo que es necesario cuantificar lo 'válida' significa para usted. Eso es un término ambiguo y puede significar un montón de cosas.

Si quiere decir algo así como la comprobación de sintaxis de Perl, no existe un equivalente exacto para un script de PowerShell, con PowerShell V1. No estoy seguro de que hay algo en V2 para que tampoco.

La descripción que da hace que suene como usted quiere algo más que una sintaxis / 'va a funcionar' cheque tipo. Al igual que @JoHannes Rossell dice, que no es trivial y es altamente específico a lo que está haciendo.

Los anteriores métodos mencionados 'whatif / Confirmar' en las otras respuestas sólo funcionan para los cmdlets de PowerShell, no a los guiones. Muestran lo que haría cmdlet, no una comprobación de sintaxis.

James

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top