让用户从命令行选项菜单中选择文件名

时间:2014-06-30 22:25:48

标签: powershell user-input options

我想要一个脚本,要求用户从列表选项中进行选择,例如:

Please select a kind of report

1.HeadOffice 
2.All offices
3.Office1
4.Office2
5.Office3

代码:

$headoffice = headoffice.csv 
$Alloffices = alloffices.csv
$Office1 = office1.csv
$Office2 = office2.csv
$Office3 = office3.csv

$csv = "selected one"

Foreach($target in $csv){

    # Do custom scan AND rainbows.
}

这可能吗?

1 个答案:

答案 0 :(得分:4)

首先,您应该创建一个hashtable,其中文件名的编号如下:

$table = @{
    '1' = 'headoffice.csv'
    '2' = 'alloffices.csv'
    '3' = 'office1.csv'
    '4' = 'office2.csv'
    '5' = 'office3.csv'
}

接下来,您可以要求用户使用Read-Hosthere-string选择一个选项:

$choice = Read-Host @'
Please select a kind of report

1.HeadOffice 
2.All offices
3.Office1
4.Office2
5.Office3
'@

最后,您可以使用该值索引哈希表,从而访问相应的文件名:

$filename = $table[$choice]

请注意,如果您使用的是CSV文件,则可能还需要阅读Import-Csv