Я вижу, что это дополнительный вопрос из предыдущего Q & A, который вы отправили. Это действительно так просто.
Использование вашего файла из предыдущего Q & A и мой ответ вам .
function Start-MenuList
{
$counter = 0
"Below are boxes`n"
Get-Content -Path 'D:\temp\abc.txt' |
ForEach {
$counter++
"$counter : Press $counter to select $(($PSItem -split '=')[0]) : $(($PSItem -split '=')[1])"
}
($UserChoice = Read-Host -Prompt "`nPlease enter a selection")
}
Clear-Host
Start-MenuList
<#
Below are boxes
1 : Press 1 to select a : abcdef123
2 : Press 2 to select b : ngh567
3 : Press 3 to select c : defh123
Please enter a selection: 1
1
#>
Конечно, вы можете изменить код так, чтобы он захватывал любую часть отображаемого пункта меню для любого необходимого вам использования, используя If / then, try / catch, switch Statement et c.
Пример:
function Start-MenuList
{
$counter = 0
"Below are boxes`n"
Get-Content -Path 'D:\temp\abc.txt' |
ForEach {
$counter++
"$counter : Press $counter to select $(($PSItem -split '=')[0]) : $(($PSItem -split '=')[1])"
}
$UserChoice = Read-Host -Prompt "`nPlease enter a selection"
switch ($UserChoice)
{
1 {'abcde1234'}
2 {'abcde5678'}
3 {'abcde9090'}
default {Write-Warning -Message 'No select was made.'}
}
}
Clear-Host
Start-MenuList
<#
# Results
Below are boxes
1 : Press 1 to select a : abcdef123
2 : Press 2 to select b : ngh567
3 : Press 3 to select c : defh123
Please enter a selection: 1
abcde1234
#>
Теперь, конечно, это жестко закодированный ответ, и динамически, это может быть что-то вроде этого .
function Start-MenuList
{
$counter = 0
"Below are boxes`n"
Get-Content -Path 'D:\temp\abc.txt' |
ForEach {
$counter++
"$counter : Press $counter to select $(($PSItem -split '=')[0]) : $(($PSItem -split '=')[1])"
}
$UserChoice = Read-Host -Prompt "`nPlease enter a selection"
switch ($UserChoice)
{
$UserChoice {"The user selected $UserChoice"}
default {Write-Warning -Message 'No select was made.'}
}
}
Clear-Host
Start-MenuList
<#
Below are boxes
1 : Press 1 to select a : abcdef123
2 : Press 2 to select b : ngh567
3 : Press 3 to select c : defh123
Please enter a selection: 3
The user selected 3
#>
Если вам нужна строка из файла / меню, вы все равно можете использовать переключатель с массивом из файла
function Start-MenuList
{
$counter = 0
"Below are boxes`n"
Get-Content -Path 'D:\temp\abc.txt' |
ForEach {
$counter++
"$counter : Press $counter to select $(($PSItem -split '=')[0]) : $(($PSItem -split '=')[1])"
}
$UserChoice = (Read-Host -Prompt "`nPlease enter a selection") - 1
$MenuArray = (Get-Content -Path 'D:\temp\abc.txt') -replace '.*='
switch ($MenuArray[$UserChoice])
{
$MenuArray[$UserChoice] {"The user selected $($MenuArray[$UserChoice])."}
default {Write-Warning -Message 'No select was made.'}
}
}
Clear-Host
Start-MenuList
<#
Below are boxes
1 : Press 1 to select a : abcdef123
2 : Press 2 to select b : ngh567
3 : Press 3 to select c : defh123
Please enter a selection: 1
The user selected abcdef123.
Start-MenuList
Below are boxes
1 : Press 1 to select a : abcdef123
2 : Press 2 to select b : ngh567
3 : Press 3 to select c : defh123
Please enter a selection: 2
The user selected ngh567.
Start-MenuList
Below are boxes
1 : Press 1 to select a : abcdef123
2 : Press 2 to select b : ngh567
3 : Press 3 to select c : defh123
Please enter a selection: 3
The user selected defh123.
#>