【发布时间】:2022-10-17 14:54:17
【问题描述】:
- 要求用户输入名称,在名称数组 person.dat 文件中搜索名称。如果找到该名称,则打印一个表,如果未找到该名称,则打印一条错误消息并询问用户另一个名称。
persons.dat. George Nelson,56,78000.00 Mary Nathaniel,65,66300.00 Rosy Ferreira,32,39000.00猜测这部分。
While ($true){ Write-Host $("1. Search by user name") Write-Host $("2. List all:) $input = (Read-Host("Enter an option (0 to quit)"))##user will input value #if 1 is entered (Read-Host("Enter user name")) #if 2 is entered Print all# #if 0 is entered quit.# try{ ? } catch { ## If input is invalid, restart loop Write-host " User does not exist" continue } 0{ Write-Host $("Thank you. Bye!")此底部将在表格中打印所有 3 个。
$data = Get-Content "persons.dat" $line = $null; [String[]] $name = @(); [int16[]] $age = @(); [float[]] $salary = @(); foreach ($line in $data) { #Split fields into values $line = $line -split (",") $name += $line[0]; $age += $line[1]; $salary += $line[2]; } Write-Host $("{0,-20} {1,7} {2,11}" -f "Name", "Age", "Salary") Write-Host $("{0,-20} {1,7} {2,11}" -f "-----------", "---", "-----------") for ($nextItem=0 ; $nextItem -lt $name.length; $nextItem++) { $val1n = $name[$nextItem]; $val2n = $age[$nextItem] $val3n = $salary[$nextItem] Write-Host $("{0,-20} {1,7} {2,11:n2}" -f $val1n, $val2n, $val3n) }
【问题讨论】:
-
那么,你的问题是什么?
-
仅供参考……
$Input变量是保留变量。 PoSh 会随时欺骗它。所以你真的不能将它用于变量。 [咧嘴笑] -
谢谢李。我在课堂上学习脚本并且仍在学习...我将其更改为 $value。亚伯拉罕,我不知道如何从 dat 文件中打印特定的行。该脚本应查找用户输入的姓名,并从 dat 文件中打印姓名、年龄和薪水。非常感谢任何反馈。
标签: arrays powershell loops