2017-09-26 16 views
0

Name 매개 변수를 허용하는 매우 간단한 HelloWorld.ps1 Power-shell 스크립트를 생성하고 길이를 확인한 후 hello 메시지를 인쇄합니다 JohnName으로 전달하면 Hello John!으로 인쇄됩니다. 이 Name 매개 변수 이상 10 자 이하 받아, 그래서 그것은 유효성 검사를 수행하지 않습니다Powershell 문자열 길이 유효성 검사 - 스크립트가 입력의 유효성을 검사하지 않고 각 실행시 파일 생성

  • :

    는하지만 이상한 행동 내가 그것을 실행할 때마다입니다.

  • 실행할 때마다 확장명이없는 10 파일을 만들고 업데이트합니다. 여기

는 파워 쉘 스크립트입니다

param (
    [parameter(Mandatory=$true)] 
    [string] 
    $Name 
) 
# Length Validation 
if ($Name.Length > 10) { 
    Write-Host "Parameter should have at most 10 carachters." 
    Break 
} 
Write-Host "Hello $Name!" 

그리고 여기 실행할 수있는 명령입니다

.\HelloWorld.ps1 -Name "John" 

내 스크립트의 문제는 무엇인가는?

답변

3

사실 >output redirection operator이고 오른쪽 피연산자의 지정된 파일로 왼쪽 피연산자의 출력을 보냅니다.

예를 들어 $Name.Length > 1010이라는 파일에 Name의 길이를 출력합니다.

문자열 길이의 유효성을 검사하려면 어떻게해야합니까?

param (
    [ValidateLength(1,10)] 
    [parameter(Mandatory=$true)] 
    [string] 
    $Name 
) 
Write-Host "Hello $Name!" 
:

당신은 속성이 방법을 [ValidateLength(int minLength, int maxlength)]를 사용할 수있는 문자열 매개 변수 길이 검증을위한

if($Name.Length -gt 10) 

더 나은 옵션 :

이 방법 greater than operator입니다 -gt을 사용할 수 있습니다