2016-12-10 1 views
0

bool 매개 변수를 자동으로 정의하는 함수 (예 : [ValidateScript()])를 작성해야합니다. 파일이 현재 위치에있는 경우에도매개 변수를 정의하기 위해 매개 변수를 정의하기 위해 param 블록에서 ValidateSet 명령 사용

function Deploy-App { 
    Param(
     [Parameter(Position=0)] 
     [ValidateScript({if (Test-Path .\DeployFiles.txt) { $UseFilepathFile = $true }})] 
     [Alias("u")] 
     [bool]$UseFilepathFile 
    ) 

    Get-Location 
    Write-Host $UseFilepathFile 
} 

왜 항상 $false을 반환합니까? ValidateScript()의 사용법이 잘못되어이 기능을 사용할 수 없습니까? 어떻게하면 내 문제를 해결할 수 있을까?

+0

코드가 의미가 없습니다. 'ValidateScript()'는 변수에 값을 할당하는 것이 아니라 함수에 전달 된 값의 유효성을 검사하기위한 것입니다. 후자는 함수 bod에 들어갑니다. '$ UseFilepathFile = 테스트 경로. \ DeployFiles.txt'. 한 걸음 물러나서 해결하려는 실제 문제를 설명하십시오. 이것을 위해 무엇이 필요합니까? –

답변

2

잘못된 방법으로 ValidateScript을 사용하고 있습니다. ValidateScript은 입력을 확인하고 설정하지 않습니다. 또한 ValidateScript에서 $ true를 반환해야합니다. 그렇지 않으면 스크립트가 작동하지 않습니다.

필요한 파일은 스크립트 본문 내에 있는지 확인하는 것입니다.

if (Test-Path .\DeployFiles.txt) { $UseFilepathFile = $true } 
관련 문제