2017-02-13 6 views
1

私はこのようにそれらを割り当て、自動的にショートカットからの入力に2つの引数をしようとしていますショートカット!異なるスクリプトの結果は、

[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