홈>
스크립트
foo.ps1
가 있습니다
배치 파일
foo.cmd
파일 탐색기에서 cmd 파일을 두 번 클릭하여 스크립트를 시작하는 데 사용됩니다.
이 스크립트는 스위치 매개 변수를 허용하지만 이러한 종류의 매개 변수를 제공하는 방법을 모르겠습니다. 간단한 매개 변수는 괜찮습니다.
Foo.ps1 :
param(
[Parameter()]
[Switch]$MySwitch,
[Parameter()]
[string]$Name
)
Write-Host "`$MySwitch : $MySwitch, `$Name : $name"
Foo.cmd :
Powershell -noprofile -NonInteractive -file "%~dp0\foo.ps1" -Name "abc"
"이름"만으로 스크립트를 호출하면 작동합니다. 그러나 MySwitch를 지정하면 작동이 중지됩니다.
Foo2.cmd :
Powershell -noprofile -NonInteractive -File "%~dp0\foo.ps1" -Name "abc" -MySwitch:$false
오류 :
C:\temp\foo.ps1 : Impossible de traiter la transformation d'argument sur le paramètre «MySwitch». Impossible de convertir la valeur «System.String» en type « System.Management.Automation.SwitchParameter». Les paramètres booléens acceptent seulement des valeurs booléennes et des nombres, tels que $True, $False, 1 ou 0.
+ CategoryInfo : InvalidData : (:) [foo.ps1], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : ParameterArgumentTransformationError,foo.ps1
- 답변 # 1
관련 자료
- 파이썬에서 객체 호출 함수의 스위치 구현
- 서버의 PC에서 Selenium Webdriver로 Python 스크립트 호출
- api - Json URL 요청을 사용하여 하나의 매개 변수에 여러 값을 지정하려면 어떻게해야합니까?
- linux - 설치되지 않은 루틴을 호출 할 때 쉘 스크립트가 실패하지 않습니다
- C #에서 F #으로 목록을 전달할 때 매개 변수를 지정하는 방법은 목록입니까?
- Powershell - 파워 쉘 - 스크립트의 매개 변수로 사용자 지정 열거 형
- typescript - 매개 변수 값으로 네임 스페이스에 일반 형식을 지정하는 방법
- 신속하게 함수 내부의 스위치 케이스로 함수에서 빈 매개 변수 구문 분석?
- javascript - 스위치 케이스 내부의 함수 호출
- amazon web services - io1 스토리지 매개 변수로 iops 매개 변수를 어떻게 지정합니까?
- bash - aws ses automation script - error parsing parameter '--destination': expected : '=', received : '@'for input :
- python - QLayout을 초기화하기 위해 매개 변수 목록에 "self"를 전달하면 setLayout () 메서드 호출을 건너 뛸 수 있습니까?
- linux - echo를 재정의하는 스크립트를 호출하여 여러 스크립트에 대한 echo를 재정의합니다
- 자바 스크립트의 스위치 케이스에 URL 매개 변수 전달
- 매개 변수 전달을 사용하여 다른 python 스크립트에서 python 스크립트 반복
- bash 스크립트 - "p10 = $10"에서와 같이 두 자리 숫자를 사용하거나 all 지정 (파일 롤러 스크립트의 경우)
- batch file - bat 스크립트에 매개 변수를 입력하여 실행하는 동안 오류가 발생했습니다
- linux - 전달 된 인수를 기반으로 실행중인 스크립트에서 다른 bash 스크립트 호출
- Python을 사용하여 Bash 스크립트를 호출 할 때 256이 반환되는 이유
- c# - 걷기와 달리기 애니메이션 사이를 전환하는 스크립트가 작동하지 않습니다
Windows PowerShell에서는 CLI가
-File
일 때 부울을 전달할 방법이 없습니다. 매개 변수가 사용됩니다-PowerShellCore[1]에서 수정되었습니다.JosefZ가 권장하는해결 방법을 사용하십시오.
-Command
의 사용 (와이즈 와이즈)-c
대신) PowerShell에서 인수를 리터럴 인수가 아닌PowerShell 소스 코드로 처리합니다.이 경우-File
올바르게 인식됩니다 (간단하게하기 위해 다른 CLI 매개 변수 생략).powershell -c "& \"%~dp0\foo.ps1\" -Name 'abc' -MySwitch:$false"
를 사용해야한다는 점에 유의하십시오 경로가 인용되어 있기 때문에 스크립트 파일을 호출합니다. 또한 PowerShell에는&
가 포함될 것으로 예상됩니다. 문자."
로 이스케이프 될 명령 행 (\"
가 아님) 또는`"
내부PowerShell)의 작동 방식PowerShell Core는
""
에서 다음 값을 부울로 지원합니다. 사용됩니다 :-File
$true
$false
true
(또한false
하지만 그 해석은 다릅니다 : 스크립트 ($null
포함) ) 및 함수는-File
로 해석합니다. cmdlet은이를$false
로 해석하지만 (!)).$true
와 함께 -따라서 모든 PowerShell 코드에서--Command
그리고true
작동하지 않지만작동하지만false
그리고0
불행히도, 지원되지 않는 값을 전달하면 모든 시나리오에서 동일한 오류 메시지가 표시됩니다. 시나리오는
1
를 잘못 제안합니다 그리고-File
작동합니다.0