嗨,我对整个脚本场景相当新,并希望有人可以帮助我。我创建了一个菜单,根据用户输入将提示回复,但我需要这样做,如果你按“1”它将加载另一个脚本到这个脚本等等 我目前的代码是:
function Show-Menu
{
param (
[string]$Title = 'Menu'
)
cls
Write-Host " $Title "
Write-Host "1: Tast '1' for at oprette OU"
Write-Host "2: Tast '2' For at oprette grupper"
Write-Host "3: Tast '3' For at importere brugere i grupper"
Write-Host "4: Tast '4' For at eksportere brugerlister til CSV"
Write-Host "5: Tast '5' For at slette brugere"
Write-Host "6: Tast '6' For at ændre password"
Write-Host "Q: Tast 'X' For at afslutte."
}
do
{
Show-Menu
$input = Read-Host "Please make a selection"
switch ($input)
{
'1' {
cls
'Du valgte Nummer #1'
} '2' {
cls
'Du valgte Nummer #2'
} '3' {
cls
'Du valgte Nummer #3'
} '4' {
cls
'Du valgte Nummer #4'
} '5' {
cls
'Du valgte Nummer #5'
} '6' {
cls
'Du valgte Nummer #6'
} 'q' {
cls
'Afslutter nu'
return
}
}
pause
}
until ($input -eq 'q')
有关如何将脚本加载到此脚本中的任何提示
答案 0 :(得分:1)
首先,不要将input
用作变量名称 - $input
是automatic variable,您最终可能会通过尝试覆盖它来看到一些奇怪和意外的行为
对于" loading"脚本,使用dot sourcing method,如下所示:
. C:\path\to\script.ps1
以上将在调用范围内执行script.ps1,因此脚本中的所有变量和函数定义都可以在以下字段后使用:
do
{
Show-Menu
$choice = Read-Host "Please make a selection"
switch ($choice)
{
'1' {
cls
'Du valgte Nummer #1'
. C:\path\to\script1.ps1
}
'2' {
cls
'Du valgte Nummer #2'
. C:\path\to\script2.ps1
}
'3' {
cls
'Du valgte Nummer #3'
. C:\path\to\script3.ps1
}
# og så videre ...
}
'q' {
cls
'Afslutter nu'
return
}
}
pause
}
until ($choice -eq 'q')
最后,你可能想要在输出中只选择丹麦语或英语文本,但这更让我感到厌烦: - )