2017-11-10 3 views
0

파일 및 폴더를 한 디렉터리에서 다른 디렉터리로 이동시키는 PowerShell 기능이 있습니다. $fromFolder 또는 $toFolder 값이 비어 있거나 null이 아닌지 확인하고 싶습니다. 두 매개 변수로 어떻게 작동하는지 확신 할 수 없습니다. about_Functions_Advanced_Parameters2 Powershell 매개 변수 유효성 검사

function Move-Folders { 
    Param 
    (
     [parameter(Mandatory=$true)] 
     [ValidateNotNullOrEmpty()] 
     [String] 
     $fromFolder, 

     [parameter(Mandatory=$true)] 
     [ValidateNotNullOrEmpty()] 
     [String] 
     $toFolder 
    ) 

    gci $fromFolder -Recurse | ForEach-Object { Move-Item $_.FullName $toFolder } 
    ii $toFolder 
} 
+0

당신은 Move '로 동일을 수행하는 함수를 작성 검증 속성과

function Move-Folders { gci $fromFolder -Recurse | ForEach-Object { Move-Item $_.FullName $toFolder } ii $toFolder } 
Manu

+1

[PowerShell 인수가 빈 문자열이고 입력을 요구하는 경우 찾기]의 가능한 복제본 (https://stackoverflow.com/questions/47181052/find-if-powershell-argument-is-anempty-string-and-prompt) -for-input) – gms0ulman

답변

2

는 매개 변수를 선언 항목`. `gci`로 브라우징 할 필요가 없습니다. 필터링하지 않고 모든 것을 움직이면`Move-Item` 만 사용하면 더 정확해질 것입니다. 그러나 매개 변수의 유효성을 검사하는 방법에 대한 답변을 제공했습니다.
+0

참조 용 : 속성이라고합니다. 또한, 코드 스타일 포인트로서, 나는 각 속성을'[Type] $ Declaration' 위의 각 속성을 가독성을 위해 자체 라인에 두는 것을 권장합니다. 필자가 작성한 일부 스크립트에서는'[ValidateScript()]'를 사용하거나 메서드가 신속하게 손상 될 수있는 여러 특성을 사용했습니다. – TheIncorrigible1

+0

'ValidateNotNullOrEmpty()'가 간단하기 때문에 나는 한 줄짜리를했다. 좋은 연습 규칙을 따르기 위해 편집합니다. – Manu

0

이 필수 매개 변수를 사용하여 작업을 수행해야합니다 :

function Move-Folders { 
Param(
    [Parameter(Mandatory=$true)] 
    $fromFolder, 
    [Parameter(Mandatory=$true)] 
    $toFolder 

) #end param 

gci $fromFolder -Recurse | ForEach-Object { Move-Item $_.FullName $toFolder } 

ii $toFolder 
} 
관련 문제