Domanda

è la loro in ogni caso per verificare la correttezza di uno script PowerShell senza eseguirlo. So che si potrebbe fare qualcosa di simile in UNIX, ma non riesco a trovare l'equiv per PowerShell.

Essenzialmente quello che ho è un repository di script, in cui ogni script è legata a governare. Se una regola incendi, lo script viene eseguito, ma ho bisogno di essere sicuro che la sceneggiatura è valida, prima della sua messa nel repository.

Grazie.

Ciao, Beh, purtroppo il comando -whatif non è sufficiente. La sua sintassi di script Voglio controllare da un motore di runtime C #, che spara uno script se una regola del motore incendi. Prima che i fuochi di script, scrivo in esso, i valori IList dalla regola, e poi sparare. Ma ho bisogno per assicurarsi che sia sintatticamente corretto, altrimenti ho intenzione di fare affidamento sulla regola scrittore per assicurare che siano corrette, che non posso fare, come molte persone ha scritto le regole, solo script duff porterà il giù motore. Io non posso farlo come il motore è un prodotto di classe enterpise progettato per uptime sei sigma.

Credo che il modo per farlo è quello di utilizzare questo, che è un lib v2.

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

Penso che ci sia modo di creare uno ScriptBlock e mettere un tentativo di cattura intorno ad esso per prendere il ParseException. Qualcuno può dirmi come farlo. Questo sta diventando una vera e propria sfida.

Grazie.

Hey, Beh ho parlato con un ragazzo nella SM (è SharePoint pm) e ha parlato a uno dei ragazzi PowerShell, e mi ha informato che non v'è alcun modo reale in PowerShell v1 per controllare la sintassi dello script senza eseguire. Quindi credo che la bandiera -whatif è il più vicino, ma non un correttore statica unfortumately. La buona notizia è, in v2 c'è un modo per tokenize il flusso di input, tramite la classe Automation.PsParser, membro Tokenize. Ciò tokenize uno script secondo le grammi PS, quindi se craps fuori, il suo uno script merda. Domanda è v2 non ha una data di rilascio ancora.

Grazie per l'aiuto. Bob.

È stato utile?

Soluzione

La cosa che vogliamo è prolly whatif / confermare . Il suo porto direttamente dal mondo Unix.

Altri suggerimenti

Quindi, stai chiedendo per la correttezza funzionale o correttezza sintattica?

Funzionalmente avresti bisogno di creare un banco di prova e l'ambiente per testare in.

Sintatticamente siete alla ricerca di un correttore codice statico per PowerShell.

Molti comandi PowerShell offrono una -whatif parametro.

Credo che hai bisogno di quantificare cio 'valida' significa per voi. Questo è un termine ambiguo e può significare un sacco di cose.

Se vuoi dire qualcosa come controllo della sintassi di Perl, non esiste un equivalente esatto per uno script PowerShell, con PowerShell V1. Non sono sicuro che ci sia qualcosa in V2 per che sia.

La descrizione si dà rende il suono come si vuole qualcosa di più di una sintassi / 'potrà gestirlo' tipo di controllo. Come @JoHannes Rossell dice, che non è banale ed è altamente specifico per quello che state facendo.

I metodi precedenti citati 'whatif / Conferma' nelle altre risposte funzionano solo per i cmdlet di PowerShell, non script. Essi mostrano che cosa cmdlet avrebbe fatto, non un controllo della sintassi.

james

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top