Powershell访问命令行参数

时间:2017-10-20 01:23:19

标签: powershell command line

我有这个powershell命令,用于打开kitty / PuTTY会话。 格式是

.\my_sshCommand three

在这种情况下应该把我带到server.three,但不管我输入什么命令行参数都需要我到server.TWO。我们的想法是,如果命令行中没有参数,那么server.TWO将是默认值。我真的不知道如何在powershell中创建一个循环,所以我只是硬编码命令。我不知道为什么命令总是满足else子句,无论我在脚本中放入什么命令行参数。

param(
   [array] $ComputerName
)



ForEach ($Computer in $ComputerName) {
   IF($Computer -match 'one') {
   $Computer="server.one"
   Write-Output "c:\Working\Kitty.exe -load `"capser profile`" -ssh capser@$Computer -pw pizza"
   $Command="c:\Working\Kitty.exe -load `"capser profile`" -ssh capser@$Computer -pw pizza"
   }
   IF($Computer -match 'two') {
   $Computer="server.TWO"
   Write-Output "c:\Working\Kitty.exe -load `"capser profile`" -ssh capser@$Computer -pw pizza"
   $Command="c:\Working\Kitty.exe -load `"capser profile`" -ssh capser@$Computer -pw pizza"
   }
   IF($Computer -match 'three') {
   $Computer="server.three"
   Write-Output "c:\Working\Kitty.exe -load `"capser profile`" -ssh capser@$Computer -pw pizza"
   $Command="c:\Working\Kitty.exe -load `"capser profile`" -ssh capser@$Computer -pw pizza"
   }
   IF($Computer -match 'four') {
   $Computer="server.four"
   Write-Output "c:\Working\Kitty.exe -load `"capser profile`" -ssh capser@$Computer -pw pizza"
   $Command="c:\Working\Kitty.exe -load `"capser profile`" -ssh capser@$Computer -pw pizza"
   }
   ELSE {
   Write-Output "c:\Working\Kitty.exe -load `"capser profile`" -ssh capser@server.TWO -pw pizza"
   $Command="c:\Working\Kitty.exe -load `"capser profile`" -ssh capser@server.TWO -pw pizza"
   }
}



Invoke-Expression $Command

1 个答案:

答案 0 :(得分:0)

最后一次比较中的其他事情正在绊倒你。

由于三个不匹配'四',它正在击中其他人,并将你发送给.two。

以下是使用开关的解决方案:

 <form action="php_dbtest.php" method="POST">
    Search: <input type="text" name="FNAME" /><br />
    <input type="submit" name="find" value="Search" id="add" />
  </form>