문제

어쨌든 PowerShell 스크립트의 정확성을 실행하지 않고 테스트하는 것입니다. 나는 당신이 유닉스에서 비슷한 일을 할 수 있다는 것을 알고 있지만 PowerShell의 eviv를 찾을 수는 없습니다.

본질적으로 내가 가진 것은 스크립트 저장소입니다. 각 스크립트는 규칙에 연결되어 있습니다. 규칙이 발사되면 스크립트가 실행되지만 저장소에 넣기 전에 스크립트가 유효한지 확인해야합니다.

감사.

안녕하세요, 불행히도 -whatif 명령만으로는 충분하지 않습니다. C# 런타임 엔진에서 확인하려는 스크립트의 구문으로 엔진 규칙이 발사되면 스크립트를 발사합니다. 스크립트가 발사되기 전에, 나는 그것을 기록하고, 규칙에서 가치를 쓸 수 있고, 나는 그것을 발사합니다. 그러나 나는 그것이 구문 적으로 정확한지 확인해야합니다. 그렇지 않으면 규칙 작가가 올바른지 확인하기 위해 규칙 작가에 의존해야합니다. 엔진 다운. 엔진은 Six Sigma Uptime을 위해 설계된 Enterpise 클래스 제품이므로 그렇게 할 수 없습니다.

나는 그것을하는 방법은 이것을 사용하는 것이 V2 lib입니다.

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

나는 스크립트 블록을 만들고 parseexception을 잡기 위해 그것을 잡아 당기는 방법이 있다고 생각합니다. 누군가가 어떻게하는지 말해 줄 수 있습니까? 이것은 진정한 도전이되고 있습니다.

감사.

이봐, 나는 MS (SharePoint PM)에서 한 남자와 이야기를 나 and으며 그는 PowerShell 남자 중 한 명과 대화를 나 and으며 PowerShell V1에 실행하지 않고 스크립트의 구문을 확인하는 데 실질적인 방법이 없다고 알려 주었다. 그래서 나는 깃발이 가장 가까운 깃발이지만 정적 체커는 불편한 것이 아닙니다. 좋은 소식은 v2에서는 automation.psparser 클래스를 통해 입력 스트림을 토큰 화하는 방법이 있다는 것입니다. 이것은 PS 문법에 따라 스크립트를 토큰 화하므로 쓰레기가 튀어 나오면 쓰레기 스크립트입니다. 질문은 v2에 아직 출시 날짜가 없다는 것입니다.

도와 줘서 고마워. 단발.

도움이 되었습니까?

해결책

당신이 원하는 것은 다리입니다 Whatif / 확인. Unix World의 직접 포트.

다른 팁

그렇다면 기능적 정확성이나 구문 적 정확성을 요구하고 있습니까?

기능적으로 테스트 할 테스트 케이스 및 환경을 만들어야합니다.

구문 적으로 PowerShell에 대한 정적 코드 검사기를 찾고 있습니다.

많은 PowerShell 명령은 a -만약 매개 변수.

나는 당신이 당신에게 '유효한'의미를 정량화해야한다고 생각합니다. 그것은 모호한 용어이며 많은 것을 의미 할 수 있습니다.

Perl의 구문 확인과 같은 것을 의미한다면 PowerShell v1과 함께 PowerShell 스크립트와 정확히 동등한 것은 없습니다. V2에도 아무것도 있는지 확실하지 않습니다.

당신이주는 설명은 단순한 구문보다 더 많은 것을 원한 것처럼 들립니다. @Johannes Rossell이 말한 것처럼, 그것은 사소하지 않으며 당신이하고있는 일에 매우 구체적입니다.

다른 답변에서 언급 된 'Whatif/확인'방법은 스크립트가 아닌 PowerShell CMDLET에 대해서만 작동합니다. 그들은 구문 검사가 아니라 CMDLET가 할 일을 보여줍니다.

제임스

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top