2015-01-23 2 views
4

일반적으로 powershell 오류는 나에게 뭔가를 제공하지만이 하나가 루프를 통해 나를 던져 버렸습니다.

workflow test-date{ 
    $Date = Get-Date -format yyyyMMddHHmm -Verbose 

    Write-Output $Date 
} 

내가 오류는 다음과 같습니다 : 테스트하려면 다음 코드를 실행

The workflow 'test-date' could not be started: The following errors were encountered while processing the workflow tree: 
'DynamicActivity': The private implementation of activity '1: DynamicActivity' has the following validation error: Compiler error(s) encountered processing expression "Date". 
'.' expected. 
At line:383 char:21 
+      throw (New-Object System.Management.Automation.ErrorRecord $ ... 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : InvalidArgument: (System.Manageme...etersDictionary:PSBoundParametersDictionary) [], RuntimeException 
    + FullyQualifiedErrorId : StartWorkflow.InvalidArgument 

부분 정말 나에게 그것을 기대 말한다이다이다 얻을 "." 어딘가에. 나는 그것이 '.'을 찾을 것을 기대하고 있는지 모른다. 나는 내 상황과 관련이없는 오류를 봤다. 이 오류의 의미에 대해 더 알고 싶습니다. 왜 내가이 오류를 얻는 지 알고 싶습니다. 누군가가 해결책을 알고 있다면 좋을 것입니다.

답변

5

나는 실제 원인을 알고 있지만하지 않는 당신은 변수 $date의 이름을 변경하는 경우 $something_else으로 변경하면 워크 플로가 작동합니다.

같은 :

Workflow Test-Date { 
    $aDate = Get-Date Get-Date -format yyyyMMddHHmm 
    $New_Date = Get-Date -format yyyyMMddHHmm 

    Write-Output $aDate 
    Write-Output $New_Date 
} 

나는 그것을 변환하는 동안 .NET에서 키워드를 트리거있어 가정합니다.

3

에서 : http://blogs.msdn.com/b/powershell/archive/2012/07/21/new-workflow-makeiteasy-authoring-workflows-using-powershell-extended-syntax.aspx

기본적으로 워크 플로에서 각 명령은 더 PowerShell을 상태가

를 공유하지로 실행

는 오류가이 관련된 방법을 알고하지 않습니다하지만이 확실히 될 것 문제점 이후

하나의 명령으로 생성 된 변수는 다음 명령에서 볼 수 없습니다.

그래서 당신이해야한다 무엇 inlinescript 블록을 사용하는 것입니다

workflow test-date{ 
    inlinescript{ 
     $Date = Get-Date -format "yyyyMMddHHmm" -Verbose 
     Write-Output $Date 
    } 
} 

출력 :

PS C:\Users\mcameron> test-date 
2015