선택적 통화 변수로 함수 만들기
PowerShell 기능에서 파라미터를 호출하여 고려해야 하는 파라미터를 생성하는 방법이 있습니까?
commandlet에 의해 주어진 예(내가 하고 싶은 것을 대담하게 하는 것):
Invoke-Command
-computername
Server01
-Scriptblock
{...}
여기 기능을 사용하여 수행하고자 하는 작업의 예가 있습니다.
Function DoStuff($computername, -arg2, -domain $domain)
Test-parameter(-domain) if (-domain -eq $true) {
use $domain
}
Else {
$domain = "Domain1"
}
test-parameter($arg2) {
if ($arg2 -eq $true) {
Do something
}
else {
Do the opposite
}
}
요약하면 다음과 같습니다.
"-arg2"가 있으면 대본에 무슨 일이 생겼으면 좋겠어요.만약 "-Domain"이 존재하고 그것과 논쟁이 있다면, 나는 set 인수가 아닌 그것을 사용하기를 원합니다.
파워셸은 필수 매개변수, 옵션 매개변수, "스위치"(일명 플래그) 매개변수 및 "매개변수 집합"을 포함한 일반적인 매개변수 시나리오에 대한 많은 내장 지원을 제공합니다.
기본적으로 모든 매개변수는 선택사항입니다.가장 기본적인 접근법은 각각의 정보를 단순히 확인하는 것입니다.$null
, 그리고 거기서 원하는 논리를 실행합니다.이것은 기본적으로 당신이 샘플 코드에서 이미 보여준 것입니다.
Powershell에서 제공하는 모든 특별 지원에 대해 알아보려면 다음 링크를 확인하십시오.
질문이 명확하지 않다고 생각합니다. 이 코드는 -domain 매개 변수를 포함할 경우 항상 '이름'(즉, doSUFF computername arg2-domain domain)이라고 가정합니다. 이것은 또한 computername 매개 변수를 필수로 만듭니다.
Function DoStuff(){
param(
[Parameter(Mandatory=$true)][string]$computername,
[Parameter(Mandatory=$false)][string]$arg2,
[Parameter(Mandatory=$false)][string]$domain
)
if(!($domain)){
$domain = 'domain1'
}
write-host $domain
if($arg2){
write-host "arg2 present... executing script block"
}
else{
write-host "arg2 missing... exiting or whatever"
}
}
질문을 제대로 이해했는지 잘 모르겠습니다.
만약 null일 경우 도메인에 값을 할당할 수 있고 $args2가 공급되고 값에 따라 특정 코드를 실행할 수 있다면 무엇을 확인할 수 있기를 원하십니까?
위의 가정을 재조립하기 위해 코드를 변경했습니다.
Function DoStuff($computername, $arg2, $domain)
{
if($domain -ne $null)
{
$domain = "Domain1"
}
if($arg2 -eq $null)
{
}
else
{
}
}
DoStuff -computername "Test" -arg2 "" -domain "Domain2"
DoStuff -computername "Test" -arg2 "Test" -domain ""
DoStuff -computername "Test" -domain "Domain2"
DoStuff -computername "Test" -arg2 "Domain2"
도움이 됐습니까?
언급URL : https://stackoverflow.com/questions/13687550/create-a-function-with-optional-call-variables
'programing' 카테고리의 다른 글
VBA를 사용하여 전체 워크시트에서 형식 제거 (0) | 2023.09.09 |
---|---|
C 또는 C++ 파일을 스크립트로 실행 (0) | 2023.09.09 |
jQuery: ajax 예외 잡기 (0) | 2023.09.09 |
오류 [ERR_REQUIR_ESM]: ES 모듈의 require()가 지원되지 않습니다. (0) | 2023.09.09 |
python mysql /mariaDB 데이터베이스 오류 (2013년, '쿼리 중 MySQL 서버와의 연결 끊김') (0) | 2023.09.09 |