Powershell相当新颖。我正在开发一个脚本,让用户安装不同的软件。此过程目前正在手动完成,安装所需的所有内容可能需要30-45分钟。但是,并非所有工作站都需要安装,因此我需要为用户提供灵活性。这是我到目前为止所提出的。 (为了简洁起见)如何通过脚本循环让用户选择不同的选项?
$Software1Path = "Path to installer"
$Software2Path = "Path to installer"
$Software3Path = "Path to installer"
function Software1 {
$Software1Arguments = "/S"
Start-Process -FilePath $Software1Installer $Software1Arguments -Wait
InstallOptions
}
function Software2 {
$Software2Arguments = "/silent"
Start-Process -FilePath $Software2Installer $Software2Arguments -Wait
InstallOptions
}
function Software3 {
$Software3Arguments = "/passive"
Start-Process -FilePath $Software3Installer $Software3Arguments -Wait
InstallOptions
}
function InstallOptions {
Do {
Clear-Host
Write-Host('1. Install Software1')
Write-Host('2. Install Software1')
Write-Host('3. Install Software1')
Write-Host('4. Install All Three')
Write-Host('0. Exit')
$value = Read-Host 'Input your selection (0-3)'
}
Until ($value -eq "o"){
switch ($value) {
"0" {exit}
"1" { Software 1}
"2" { Software 2}
"3" { Software 3}
"4" { Software1
Software2
Software3}
}
}
}
它没有给出期望的结果。我可以安装一个软件,但脚本退出,我也不能安装所有三个。我玩过InstallOptions并以十种不同的方式写出来,但我仍然没有得到理想的结果。有什么建议么?
递归每次你安装的东西 –
那是因为你叫什么InstallOptions将循环更好的方式回到我的身边来了“菜单”? – MBH
好吧,如果我正在做这件事,我会完全重新设计的方法,tbh,没有一点尝试使这更好 – 4c74356b41