Frage

Ist sie ohnehin die Korrektheit eines Powershell-Skript zu testen, ohne sie auszuführen. Ich weiß, dass Sie etwas ähnliches in Unix tun könnten, aber die equiv für Powershell nicht finden kann.

Im Wesentlichen habe, was ich ist eine Skript-Repository, wobei jedes Skript gebunden zu regieren. Wenn eine Regel ausgelöst, führt das Skript, aber ich muss sicher sein, dass das Skript gültig ist, bevor ihre Put im Repository.

Danke.

Hallo, Nun, leider der -whatif Befehl ist nicht ausreichend. Es ist die Syntax von Skripten ich von einem C # Laufzeit-Engine überprüfen möchten, die ein Skript, wenn ein Motor-Regel Brände ausgelöst. Vor dem Skript Feuer, schreibe ich hinein, IList Werte von der Regel, und ich es dann feuern. Aber ich brauche, um sicherzustellen, es syntaktisch korrekt ist, sonst werde ich habe auf die Regel Schriftsteller verlassen sie sind, um sicherzustellen, richtig, was ich nicht tun kann, wie viele Menschen Regeln geschrieben werden, nur ein nutzloses Skript bringt die Motor nach unten. Ich kann das nicht tun, wenn der Motor ein enterpise Klasse Produkt ist für Six-Sigma-Verfügbarkeit.

Ich denke, die Art und Weise, es zu tun ist, diese zu verwenden, die ein v2 lib ist.

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

Ich denke, es ist eine Art und Weise Script zu schaffen und einen Versuch fangen um sie setzen die ParseException zu fangen. Kann mir jemand sagen, wie es zu tun. Dies ist immer eine echte Herausforderung.

Danke.

Hey, Nun sprach ich mit einem Kerl in MS (er ist Share Uhr) und er sprach mit einem der Powershell Jungs, und er teilte mir mit, dass es in Powershell v1 keine wirkliche Möglichkeit ist die Syntax des Skripts zu überprüfen, ohne die Ausführung. Also ich denke, das -whatif Flagge ist in der Nähe, aber es ist keine statische checker unfortumately. Eine gute Nachricht ist, in v2 gibt es einen Weg, um den Eingangsstrom tokenize über die Automation.PsParser Klasse, tokenize Mitglied. Dies wird einen Skript in Übereinstimmung mit dem PS Gramm tokenize, also wenn es scheißt heraus, es ist ein Mist Skript. Die Frage ist v2 kein Release-Datum hat noch.

Vielen Dank für die Hilfe. Bob.

War es hilfreich?

Lösung

Das, was Sie wollen, ist prolly whatif / bestätigen. Sein direkter Anschluss von Unix-Welt.

Andere Tipps

Sie sind also für die funktionale Korrektheit oder syntaktische Korrektheit zu fragen?

Funktionell müssen Sie einen Testfall und Umgebung zu schaffen, in testen.

syntaktisch Sie für einen statischen Code-Checker für Powershell suchen.

Viele Powershell-Befehle bieten einen -whatif Parameter.

Ich glaube, Sie brauchen, um zu quantifizieren, was ‚gültig‘ für Sie bedeutet. Das ist ein mehrdeutiger Begriff und kann eine Menge Dinge bedeuten.

Wenn Sie so etwas wie Perl Syntaxprüfung bedeuten, gibt es keine genaue Entsprechung für ein Skript Powershell, mit Powershell V1. Ich bin mir nicht sicher, dass es für die entweder etwas in V2 ist.

Die Beschreibung geben Sie es macht klingen wie Sie wollen etwas mehr als nur eine Syntax / Typprüfung ‚wird es laufen‘. Wie @JoHannes Rossell sagt, dass ist nicht trivial und ist sehr spezifisch, was Sie tun.

Die vorherigen erwähnten ‚whatif / Bestätigen‘ Methoden in den anderen Antworten nur für Powershell-Cmdlets arbeiten, keine Skripts. Sie zeigen, was das Cmdlet tun würde, nicht eine Syntaxprüfung.

james

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top