2017-02-13 1 views
1

나는이 같은에 할당 자동으로 바로 가기 입력이 개 인수를 시도하고 있어요 지름길! 그것은 바로 가기에서 동일한 인수 실패 이유를 이해할 수없는 콘솔에서 완벽하게 작동으로다른 스크립트의 결과는

[int]$digit = 6       #Default values. 
[String]$variable = 'X' 
Write-Host $args[0].GetType().Name #Shows both as String from hortcut! 
Write-Host $args[1].GetType().Name 
switch($args) { #Allows any order of input parameters and assigns. 
    {$_.GetType().Name -eq 'Int32'} {$digit = $_ ; continue} 
    {$_.GetType().Name -eq 'String'} {$variable = $_} 
} 
$digit 
$variable 

나는, 내가 '-var B의 -dig 2'와 같은 명명 된 매개 변수와 함께이 작업을 수행 할 수 있습니다 알고 있지만. 아이디어 제발?

답변

0

-file 대신 -command을 사용하십시오. 증명을 위해 :

==> powershell -noprofile -file D:\PShell\SO\swap-parms.ps1 A 33 
String 
String 
6 
33 

==> powershell -noprofile -command D:\PShell\SO\swap-parms.ps1 A 33 
String 
Int32 
33 
A 

==> 
+0

대단히 감사합니다. 당신이 말하는대로 작동합니다. – Archdeacon